正则表达式(括号)、[中括号]、{大括号}的区别小结
正則表達式(括號)、[中括號]、{大括號}的區別小結
</h1><div class="clear"></div><div class="postBody">
正則表達式的() [] {}有不同的意思。
() 是為了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。
(\s*)表示連續空格的字符串。
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[\s*]表示空格或者*號。
{}一般用來表示匹配的長度,比如 \s{3} 表示匹配三個空格,\s{1,3}表示匹配一到三個空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意后面有 *,可以為空)[0-9]+ 匹配數字(注意后面有 +,不可以為空){1-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)匹配到的內容,而$3則獲取到了(ccc)匹配到的內容,而$4則獲取的是由(eee)匹配到的內容,因為前一對括號沒有保存變量
4、a(?=bbb) 順序環視 表示a后面必須緊跟3個連續的b
5、(?i:xxxx) 不區分大小寫 (?s:.*) 跨行匹配.可以匹配回車符
方括號是單個匹配,字符集/排除字符集/命名字符集
示例:
1、[0-3],表示找到這一個位置上的字符只能是0到3這四個數字,與(abc|bcd|cde)的作用比較類似,但圓括號可以匹配多個連續的字符,而一對方括號只能匹配單個字符
2、[^0-3],表示找到這一個位置上的字符只能是除了0到3之外的所有字符
3、[:digit:] 0-9 [:alnum:] A-Za-z0-9
——————————————————————————————————————————————————————————————————————
()和[]有本質的區別
()內的內容表示的是一個子表達式,()本身不匹配任何東西,也不限制匹配任何東西,只是把括號內的內容作為同一個表達式來處理,例如(ab){1,3},就表示ab一起連續出現最少1次,最多3次。如果沒有括號的話,ab{1,3},就表示a,后面緊跟的b出現最少1次,最多3次。另外,括號在匹配模式中也很重要。這個就不延伸了,LZ有興趣可以自己查查
[]表示匹配的字符在[]中,并且只能出現一次,并且特殊字符寫在[]會被當成普通字符來匹配。例如[(a)],會匹配(、a、)、這三個字符。
所以() [] 無論是作用還是表示的含義,都有天壤之別,沒什么聯系
?
轉自:https://blog.csdn.net/u010552788/article/details/51019367/
分類: 正則表達式<div id="blog_post_info">
好文要頂 關注我 收藏該文
安靜的女漢紙關注 - 5
粉絲 - 16 +加關注 0 0
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/hjbky/p/9510576.html" class="p_n_p_prefix">? </a> 上一篇: <a href="https://www.cnblogs.com/hjbky/p/9510576.html" title="發布于 2018-08-21 11:59">正則方法-轉駝峰</a>
<br>
<a href="https://www.cnblogs.com/hjbky/p/9518149.html" class="p_n_p_prefix">? </a> 下一篇: <a href="https://www.cnblogs.com/hjbky/p/9518149.html" title="發布于 2018-08-22 15:46">跨域下使用獲取iframe的父頁面URL</a>
posted @ 2018-08-21 16:15?安靜的女漢紙 閱讀(7866) 評論(0) 編輯 收藏
</div>
總結
以上是生活随笔為你收集整理的正则表达式(括号)、[中括号]、{大括号}的区别小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则实例案例例子
- 下一篇: 多个错误多个tryexcept的处理异常