正規表示式 Cheat Sheet

2021-10-04 03:51:22 字數 3654 閱讀 8523

.可以匹配任意單個除了換行符的字元。

例:

.

假如對這個例子,我們像匹配"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];

arr[0] = 1;

arr[1] = 2;

同理,比如我們希望把windows風格的路徑變為unix風格的。

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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...