1.正規表示式的() {}有不同的意思。
() 是為了提取匹配的字串。表示式中有幾個()就有幾個相應的匹配字串。
(\s*)表示連續空格的字串。
是定義匹配的字元範圍。比如 [a-za-z0-9] 表示相應位置的字元要匹配英文本元和數字。[\s*]表示空格或者*號。
{}一般用來表示匹配的長度,比如 \s 表示匹配三個空格,\s表示匹配一到三個空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意後面有 *,可以為空)[0-9]+ 匹配數字(注意後面有 +,不可以為空) 寫法錯誤。
[0-9] 表示長度為 0 到 9 的數字字串。
2.圓括號()是組,主要應用在限制多選結構的範圍/分組/捕獲文字/環視/特殊模式處理
示例:1、(abc|bcd|cde),表示這一段是abc、bcd、cde三者之一均可,順序也必須一致
2、(abc)?,表示這一組要麼一起出現,要麼不出現,出現則按此組內的順序出現
3、(?:abc)表示找到這樣abc這樣一組,但不記錄,不儲存到變數中
,否則可
以通
過變數中,否則可以通過
變數中,否則
可以通過
x取第幾個括號所匹配到的項,比如:(aaa)(bbb)(ccc)(?:ddd)(eee),可以用$1獲取(aaa)匹配到的內容,而$3則獲取到了(ccc)匹配到的內容,而$4則獲取的是由(eee)匹配到的內容,因為前一對括號沒有儲存變數
4、a(?=bbb) 順序環視 表示a後面必須緊跟3個連續的b
5、(?i:***x) 不區分大小寫 (?s:.*) 跨行匹配.可以匹配回車符
方括號是單個匹配,字符集/排除字符集/命名字符集
示例:1、[0-3],表示找到這乙個位置上的字元只能是0到3這四個數字,與(abc|bcd|cde)的作用比較類似,但圓括號可以匹配多個連續的字元,而一對方括號只能匹配單個字元
2、[^0-3],表示找到這乙個位置上的字元只能是除了0到3之外的所有字元
3、[:digit:] 0-9 [:alnum:] a-za-z0-9
3.()和有本質的區別
()內的內容表示的是乙個子表示式,()本身不匹配任何東西,也不限制匹配任何東西,只是把括號內的內容作為同乙個表示式來處理,例如(ab),就表示ab一起連續出現最少1次,最多3次。如果沒有括號的話,ab,就表示a,後面緊跟的b出現最少1次,最多3次。另外,括號在匹配模式中也很重要。這個就不延伸了,lz有興趣可以自己查查
表示匹配的字元在中,並且只能出現一次,並且特殊字元寫在會被當成普通字元來匹配。例如[(a)],會匹配(、a、)、這三個字元。
所以() 無論是作用還是表示的含義,都有天壤之別,沒什麼聯絡
fei 正規表示式 正規表示式小結
常用的元字元常用的反義 常用的限定符 語法 說明 語法 說明 語法 說明 w 匹配字母或數字或下劃線或漢字 w匹配任意不是字母 數字 下劃線 漢字的字元 重複零次或者更多次 s匹配任意的空白字元 s匹配任意不是空白符的字元 重複一次或更多次 d匹配數字 d匹配任意非數字的字元 重複零次或一次 b匹配...
正規表示式小結
正規表示式 regex 英 red eks 1,d d d d或者是 d 表示匹配4位數的數字。2.說明。這些可被稱作元字元。匹配除換行符以外的任意字元1 jk2yh jj w數字字母漢字下劃線 bst456 5ghgtft s匹配任意的空白符 space table鍵和半全形空格 d匹配數字 di...
正規表示式小結
最近學習了正規表示式,趁還熱乎,寫下這篇部落格,記錄一下。正規表示式 英語 regular expression,在 中常簡寫為regex 正規表示式是乙個字串,使用單個字串來描述 用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索 替換那些符合某個規則的文字,也...