正規表示式

2021-06-16 22:59:25 字數 1356 閱讀 4755

一、正規表示式基礎知識:

我們先從簡單的開始。假設你要搜尋乙個包含字元「cat」的字串,搜尋用的正規表示式就是「cat」。如果搜尋對大小寫不敏感,單詞「catalog」、「catherine」、「sophisticated」都可以匹配。也就是說:

正規表示式:cat

匹配:cat,catalog,catherine 等等。

1.1句點符號.

想要找出三個字母的單詞,而且這些單詞必須以「t」字母開頭,以「n」字母結束。這時候可以用句點符「 . 」 這是因為句點符號匹配所有字元,包括空格、tab字元甚至換行符: 

可以用正規表示式 t.n 

可以匹配:tan,t n ,t#n,

1.2方括號符號

可以在方括號(「」)裡面指定看來有意義的字元,這時候只有方括號裡面指定的字元才能參與匹配,但是是唯一的。也就是說t[aeio]n可以匹配tan,ten,tin,ton  但是不匹配taen。所以說方括號內只能匹配單一字元:

正規表示式:t[aeio]n

匹配:tan,ten,ton,tin

1.3或符號 |和小括號()

小括號是為了滿足 能多個字元匹配的 例如你想匹配toon的話,那麼就可以用t(a|e|i|o|oo)n 這時候用小括號和或符號就能實現

正規表示式:t(a|e|i|o|oo)n

匹配:tan,ten,ton,tin,toon

1.4大括號和特殊符號{},*,+,?

這些符號代表了出現的次數

*代表了可以出現0次1次或者多次

+代表了可以出現1次或者多次

?代表了出現0次或者一次

代表了出現n次

代表了出現從n次到m次中的任意一次

例如:999-99-9999 可以表達為[0-9]\-[0-9]\-[0-9] 其中的\是轉義符

例如:999-99-9999 或者不要 - 這樣就可以表達為:[0-9]\-?[0-9]\-?[0-9]

1.5 否符號 ^

如果用在內^表示不想匹配的字元 例如 [^x]代表匹配所有的單詞但是以x開頭的字母除外

如果是出現在外  ^代表以裡面的字元開頭的字串

1.6空白符\s

例如匹配 日期 june 26,1951 

[a-z]+\s+[0-9],\s*[0-9]

這裡面的\s匹配所有的空白字元,包括tab

1.7其他符號:

\d [0-9]

\d [^0-9]

\w [a-z0-9]

\w[^a-z-0-9]

\s[\t\n\r\f]

\s[^\t\n\r\f]

二:應用例項

簡單的ip判定 \d\.\d\.\d\.\d

自己先學習到這裡 歡迎補充討論

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

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