整理常用的正規表示式

2021-10-01 19:46:20 字數 1455 閱讀 2630

寫演算法或者工作中,經常需要用到正規表示式,一般情況下,都是上網搜尋,由於偶爾遇到需要自己解決的情況,因此做一些正規表示式的學習及積累。

1、常用元字元

\s表示可以匹配任何空白字串

\d表示任意任意數字

\w表示字母、數字、下劃線

.匹配除 "n" 之外的任何單個字元。要匹配包括 'n' 在內的任何字元,請使用像"(.|n)"的模式

2、常用語法

+加號代表前面的符號出現一次(只包含原本加號前面的那個字元)或者多次。比如:runoo+b,可以匹配runoob, runoooob

*星號代表前面的符號可以不出現,或者出現1次或者多次。比如:runoo*b,可以匹配runob, runoob, runooooob

?問號代表前面的字元最多只能出現一次。比如colou?r可以匹配:color,colour

$匹配輸入字串的結尾位置

()標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。1表示重複 正則第乙個圓括號內匹配到的內容,2表示重複正則第二個圓括號內匹配到的內容

比如有以下正則:

([a-z])([a-z])\2\1

則可以匹配字串abba

第乙個圓括號內的正則匹配字元a,則在字串最後\1這個位置必須是字元a,第二個括號匹配字元b,在倒數第二個位置\2必須是字元b

如果有巢狀的圓括號,順序是按左括號的次序計算的

1、字串每個字元都是大寫:

^[a-z]+$

2、在字串中尋找xyxy的子串行,x、y及xy、xy可以不連續:

.*(.).*(.).*\1.*\2.*

3、字串存在連續相同的字元:

.*(.)\1.*

4、待補充...

1、什麼是正規表示式的貪婪與非貪婪匹配

如:string str="abcaxc";

patter p="ab*c";

(1)貪婪匹配:正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到:abcaxc(ab*c)。

(2)非貪婪匹配:就是匹配到結果就好,就少的匹配字元。如上面使用模式p匹配字串str,結果就是匹配到:abc(ab*c)。

2.程式設計中如何區分兩種模式

預設是貪婪模式;在量詞後面直接加上乙個問號?就是非貪婪模式。

量詞::m到n個

*:任意多個

+:乙個到多個

?:0或乙個

常用正規表示式(整理)

1。d 注釋 匹配 非負整數 正整數 0 2。0 9 1 9 0 9 注釋 匹配 正整數 3。d 0 注釋 匹配 非正整數 負整數 0 4。0 9 1 9 0 9 注釋 匹配 負整數 5。d 注釋 匹配 整數 正整數和付整數和0 6。d d 注釋 匹配 非負浮點數 正浮點數 0 7。0 9 0 9 ...

常用正規表示式(整理)

1。d 注釋 匹配 非負整數 正整數 0 2。0 9 1 9 0 9 注釋 匹配 正整數 3。d 0 注釋 匹配 非正整數 負整數 0 4。0 9 1 9 0 9 注釋 匹配 負整數 5。d 注釋 匹配 整數 正整數和付整數和0 6。d d 注釋 匹配 非負浮點數 正浮點數 0 7。0 9 0 9 ...

常用正規表示式整理

標記一行的開始 cat 匹配所有以cat 序列開頭的行 標記一行的結尾 cat 匹配所有以cat 序列結尾的行 將不同表示式進行或運算組合 ab ac匹配ab 或者ac 限制運算表示式運算範圍,分隔表示式,可以限制 的作用範圍 ab cd 匹配以ab或cd 開頭的行 列舉取值內容,在字元組 內外,元...