一、基本符號
\b:只匹配乙個位置。它的前乙個字元和後乙個字元不全是
\w\w
:匹配字母或數字或下劃線或漢字等
.:
匹配除了換行符以外的任意字元*:
代表前面的內容可以連續重複任意次。
0次或多次
+:匹配
1個或重複多次。
1次或多次
?:0次或
1次*?
:重複任意次,但盡可能少,最簡
+?:重複
1次或多次,盡可能少
??:重複0次或
1次,盡可能少
:重複n到m
次,盡可能少
.*
:代表任意數量的不包含換行的字元
\d:代表前面的數字
\d必須連續重複2次至
5次 :
n次或多次
\s:匹配任意的空白符,包括空格,製表符
tab,換行符,中文全形空格等^和
$:匹配開頭和結尾,如
^\d$
,則整個輸入必須是2到
5個數字,不能有其他字元;若沒有^和
$,則只要輸入的字元裡面有2到
5位數字即可,其他字元不管
^\w+
:匹配一行的第乙個單詞
二、轉義符號
\. 和\* 和
\\:轉義字元,匹配「
.」,「
*」,「
\」字元本身,而非元字元
[.?!]
:匹配「.」
或「?」
或「!」
三、反義符號
\w :匹配任意不是字母,數字,下劃線,漢字的字元
\s:匹配任意不是空白符的字元
\d:匹配任意非數字的字元
\b:匹配不是單詞開頭或結束的位置
[^abcd]
:匹配除了
abcd
這幾個字元以外的任意字元,
」^」表示非
]+>:匹配用尖括號括起來的以a開頭的字串
四、後向引用
使用小括號指定乙個子表示式,匹配這個子表示式的文字可以在表示式或其他程式中進一步處理。每個分組會自動擁有乙個組號,從左往右,從
1開始。
\b(\w+)\b\s+\1\b
:這個表示式首先是乙個單詞,也就是單詞開始處和結束處之間的多於乙個的字母或數字(\b(\w+)\b),這個單詞會**獲到編號為1的分組中,然後是1個或幾個空白符(\s+),最後是分組1中捕獲的內容(也就是前面匹配的那個單詞)(\1)。
(?\w+)
(或者把尖括號換成
'也行:
(?'word'\w+)
):可以自己指定子表示式的組名為「word」。
比如\b\w+(?=ing\b),匹配以ing結尾的單詞的前面部分(除了ing以外的部分),如查詢i'm singing while you're dancing.時,它會匹配sing和danc。
五、示例
匹配郵箱(可為空) (1)用於前台:/^([\w_-]+(?:\.[\w_-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?)|$/
(2)用於後台:^([\\w_-]+(?:\\.[\\w_-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?)|$
(3)匹配特殊字元:/^([\\w!#$%&'*+/=?^_`~-]
+(?:\\.[\\w!#$%&'*+/=?^_`~-]+)
*@(?:[\\w]
(?:[\\w-]*[\\w]
)?\\.
)+[\\w]
(?:[\\w-]*[\\w])?)|$/
【解說】
(1)必須指定開頭:否則「#[email protected]」也可匹配。必須指定結尾,否則「 」空格或「#」也可匹配(因為前面匹配 | ,為空,又不限制結尾)。
(2)後台使用:(不能加「/",否則不匹配)
pattern pattern = pattern.compile("。。。。");
matcher matcher = pattern.matcher(。。。。);
if(!matcher.matches())
(3)
首先[ ]+
:字母與一些特殊字元,重複
1次或多次 接著
(?:expr)*
:匹配expr重複0
次到多次,
expr是「.
」加上字母或特殊字元的
1次到多次的重複
緊跟乙個「
@」符號。
接著匹配
:字元開頭,緊跟
至少乙個字元的字串(0到
1個),緊跟「.
」,這樣格式的
1次到多次的重複
緊跟乙個字元。
最後匹配至少乙個字元的字串(0到
1次)。
或者」|"匹配
空。匹配4位年份
/^[0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9]$/
3. 匹配**
^([0-9]\\-)?([2-9][0-9])([-#][0-9])?$
【解說】
目前**一般7~8位,(香港都是8位)
前面區號國內一般4位,台灣是2位
後面分機號,可用「-」或「#」分割。
4. 匹配中文
[\u4e00-\u9fa5]
5. 匹配中文,英文本母和數字及
_:^[\u4e00-\u9fa5_a-za-z0-9]+$
6.
乙個正規表示式,只含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:
^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$
【解說】
(?!_)
:不能以_開頭
(?!.*?_$)
:不能以_結尾
7.最長不得超過
7個漢字,或
14個位元組
(數字,字母和下劃線
)正規表示式
^[\u4e00-\u9fa5]$|^[\da-za-z_]$
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...