一,指定匹配字元:
範圍字元:[ ]
[xyz]
匹配指定字元中的任意乙個字元
新增^表示排除指定字元
[a-z]
匹配指定範圍中的任意乙個字元
x|y匹配指定字元x或y中的任意乙個
[\u4e00-\u9fa5]
匹配任意漢字
任意字元:., \w, \d, \s
.匹配任意字元,除「\r\n」
\w匹配任意字母,數字,下劃線
\d匹配任意數字
\s匹配任意空白,如空格、製表符、換頁符等
\n:換行符
\r:回車符
\t:製表符
\f:換頁符
\v:垂直製表符
大寫取反。
二,指定匹配次數:*, +, ?,
*零次或多次
+一次或多次
?零次或一次
n次最少n次
最少n次,最多m次
貪婪與非貪婪:?
設定匹配次數後,預設是貪婪匹配,就是盡可能匹配到最多的字元。在量詞後新增?後,改為非貪婪模式。
源字串:aaa
bbb正規表示式1:.*
匹配結果:aaa
bbb正規表示式2:.*?
匹配結果:aaa
三,指定匹配位置:\b, ^, $
\b匹配任何單詞的邊界
^匹配字串的開始位置
$匹配字串的結束位置
四,指定匹配前提條件:(?=), (?!), (?<=), (?用來指定匹配前必須滿足的前提條件。
注意:前提條件中的正規表示式exp,只是用來宣告某種特徵,不會用於真正的匹配。
(?=exp)
尾部符合exp
如\b\w+(?=ing\b), 查詢i'm singing while you're dancing.時,它會匹配sing和danc
(?!exp)
尾部不符合exp
如\d(?!\d),匹配三位數字,而且這三位數字的後面不能是數字
(?<=exp)
頭部符合exp
如(?<=\bre)\w+\b,查詢reading a book時,它匹配ading
(?頭部不符合exp
如(?
五,用匹配得到的字元作為接下來的匹配條件:()
(exp)
匹配得到的字元儲存到\1,\2...\9
(a|b)\1 相當於aa|bb。在匹配「abaa」時,匹配到的結果是「aa」
(?exp)
匹配得到的字元儲存到\
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...