正規表示式中 和 的區別

2021-08-28 12:13:16 字數 902 閱讀 4983

圓括號()是組,主要應用在限制多選結構的範圍/分組/捕獲文字/環視/特殊模式處理

示例: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之外的所有字元

()和有本質的區別

()內的內容表示的是乙個子表示式,()本身不匹配任何東西,也不限制匹配任何東西,只是把括號內的內容作為同乙個表示式來處理,例如(ab),就表示ab一起連續出現最少1次,最多3次。如果沒有括號的話,ab,就表示a,後面緊跟的b出現最少1次,最多3次。另外,括號在匹配模式中也很重要。這個就不延伸了,lz有興趣可以自己查查

表示匹配的字元在中,並且只能出現一次,並且特殊字元寫在會被當成普通字元來匹配。例如[(a)],會匹配(、a、)、這三個字元。

所以() 無論是作用還是表示的含義,都有天壤之別

正規表示式中?和 的區別

表示匹配前面的字元0次或1次 表示匹配前面的字元0次或任意多次 001 在r語言中 sub a?b c aaaabxa xbxa xacb 表示匹配前面字元0次或1次 a?b表示匹配b或者ab 1 aaaxa xxa xac sub a b c aaaabxa xbxa xacb 表示匹配前面字元0...

關於正規表示式中 和

是正規表示式匹配字串開始位置 是正規表示式匹配字串結束位置 很多人始終沒搞清楚這是什麼意思,這裡用幾個例子看下就一目了然了。先搞清楚 匹配字串開始位置 其實就是從字串左邊第乙個字元開始匹配 1 str 2 pattern blog 因為 為特殊字元 3 str preg replace patter...

正規表示式 的區別

正規表示式的 有著不同的意思 是為了提取匹配字串的,表示式中有幾個 就有幾個相應的匹配字串 s 表示連續空格的字串 是定義匹配的字元範圍。比如 a za z0 9 表示相應位置的字元要匹配英文本元和數字。s 表示空格或者 號 一般是用來匹配的長度。比如 s表示匹配三個空格,s 1,3 表示匹配1到3...