.
可以匹配任意單個除了換行符的字元。
例:
.
假如對這個例子,我們像匹配"pp."
如果使用pp.
,匹配結果為:
napptxt makk.txt如果要匹配
.
,就要使用轉義字元
pp\.
可以使用來定義乙個字元集合,用於匹配屬於該集合的字元。
[mn]a
napp. txt napptxt makk.txt對於文字:
nam.txt na1.txt ma4.txt mb.txt像要匹配如「m或n a 數字」的話,可以使用字元區間:
[mn]a[0-9]
nam.txt na1.txt ma4.txt mb.txt字元區間準確而言是在ascii中的子區間,因此可以是:
另外注意兩點:
[\u4e00-\u9fa5]
可以在中的開頭使用
^
字元表示取反操作:
[mn]a[^0-9]
nam.txt na1.txt mb.txt另外有兩點:
元字元指的是那些有著特殊含義的字元,如.
、等。不能使用這些元字元匹配其字面字元,必須使用轉義。比如對於:
int arr = new int[5];如果使用arr[0] = 1;
arr[1] = 2;
arr[[0-9]]
試圖匹配的話什麼都匹配不到,必須要:
arr\[[0-9]\]
int arr = new int[5];同理,比如我們希望把windows風格的路徑變為unix風格的。arr[0] = 1;
arr[1] = 2;
c:\users\zuoyiping如果使用
\
的話什麼都匹配不到,必須使用\\
。
常用的空白字元包括:
可以使用\t
,\n
,\r
,\f
(換頁符),\v
(垂直製表符)
\s
來表示上面所有符號的集合,等價於[\t\n\r\f\v]
。
另外\s
表示所有非空白符,等價於[^\t\n\r\f\v]
。
以上所有的重複匹配,都預設是貪婪型的,它們會盡可能的匹配多的字元而不是在第乙個匹配位置就結束。
autf-8bgbk\
.*
autf-8bgbk為了改為「懶惰型」,只需要在最後加上
?
即可:
.*?
autf-8bgbk
the cat scattered his food
cat
the cat scattered his food使用
\b
可以限定單詞邊界,他匹配的是乙個位置。
\bcat\b
the cat scattered his food使用
()
括在一起地被視為乙個子表示式,是乙個整體。
回溯引用指的是可以引用待匹配字串中其中一部分,為了具體說明首先我們來看乙個例子。
假如我們有下面這段文字:
零寬斷言是正規表示式的一種方法,用於查詢在某些內容(但並不包括這些內容)之前或者之後的東西,也就是說他們像
\b
,^
(匹配輸入字行首),$
(匹配輸入字行尾)那樣用於指定乙個位置,這個位置應該滿足一定的條件(即斷言),因此它們也被稱為零寬斷言。斷言用來宣告乙個應該為真的事實,正規表示式中只有當斷言為真時才會繼續進行匹配。
(?=exp)
叫零寬度正**先行斷言,它斷言自身出現的位置的後面能匹配表示式exp。比如
\b\w+(?=ing\b)
,匹配以ing結尾的單詞的前面部分(除了ing以外的部分)。i』m singing while you』re dancing
\b\w+(?=ing\b)
i』m singing while you』re dancing
(?<=exp)
也叫零寬度正回顧後發斷言,它斷言自身出現的位置的前面能匹配表示式exp。
比如(?<=\bre)\w+\b
會匹配以re開頭的單詞的後半部分(除了re以外的部分)。
reading a book
(?<=\bre)\w+\
reading a book不過這個特性不一定每個實現都支援。
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...