正規表示式的() {} 有著不同的意思
() 是為了提取匹配字串的,表示式中有幾個()就有幾個相應的匹配字串
(\s*)表示連續空格的字串
是定義匹配的字元範圍。比如[a-za-z0-9]表示相應位置的字元要匹配英文本元和數字。[\s*表示空格或者*號]
{}一般是用來匹配的長度。比如\s表示匹配三個空格,\s[1,3]表示匹配1到3個空格
(0-9)匹配'0-9'本身。[0-9]*匹配數字(注意後面有*,可以為空)[0-9]+匹配數字(注意後面有+,不可以為空),
寫法是錯誤的
[0-9]表示長度為0到9的數字字串。
********************=
圓括號()是組,主要應用在限制多選結構的範圍/分組/捕獲文字/環視/特殊模式處理
示例:1(abc|bcd|cde),表示這一段是abc、bcd、cde三者之一,順序也必須一致
2、(abc)? 表示這一組要麼一起出現,要麼不出現,出現那則按順序出現
3、(?:abc)表示找到一樣abc的一組,但是不記錄,不儲存到變數中,否則可以通過變數中,否則可以通過x取第幾個括號所匹配道德項
,比如:
(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1獲取(aaa)匹配到的內容,而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
********************=
()和有本質的區別
()內的內容表示的是乙個表示式,()本身不匹配任何東西,也不惜那是匹配任何東西,只是把括號內的內容作為
同乙個表示式來處理,例如(ab),就表示ab一起連續出現最少1次,最多三次。如果沒有括號的話,ab,
就表示a 後面緊跟的b出現的最少一次,最多三次。另外,括號在匹配模式中也跟重要。這個就不延伸了。
表示匹配字元在中,兵出現一次,並且reshuffle字元寫在會被當成普通字元來匹配,例如[(a)],會匹配(、a、)、這三個字元。
所以() 無論是作用還是表示的含義。都有天壤之別,沒有什麼聯絡。
正規表示式 的區別
閱讀目錄 圓括號 是組,主要應用在限制多選結構的範圍 分組 捕獲文字 環視 特殊模式處理 方括號是單個匹配 字符集 排除字符集 命名字符集 正文內容 正規表示式的 有著不同的意思。是為了提取匹配字串的,表示式中有幾個 就有幾個相應的匹配字串 s 表示連續空格的字串 是定義匹配的字元範圍。比如 a z...
正規表示式 的區別
原文 圓括號 是組,主要應用在限制多選結構的範圍 分組 捕獲文字 環視 特殊模式處理 方括號是單個匹配 字符集 排除字符集 命名字符集 正規表示式的 有著不同的意思。是為了提取匹配字串的,表示式中有幾個 就有幾個相應的匹配字串 s 表示連續空格的字串 是定義匹配的字元範圍。比如 a za z0 9 ...
正規表示式 正規表示式 總結
非負整數 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...