選擇、分組、引用,指定匹配的位置

正則表達式的語法還包括指定選擇項,對子表達式分組和引用前一子表達式的特殊字符.字符| 用於分隔供選擇的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要麼是一個三位數,要麼是四個小寫字母.java

在正則表達式中括號具備幾種做用:正則表達式

一、它的主要做用是把單獨的項目分組成子表達式,以即可以像處理一個獨立的單元那種用 *、+或? 來處理那些項目.例如: /java(script) ?/ 匹配的是字符串 "java",其後既能夠有 "script",也能夠沒有. / (ab|cd) + |ef) / 匹配的既能夠是字符串 "ef",也能夠是字符串"ab" 或者 "cd" 的一次或屢次重複.ip

二、在正則表達式中,括號的第二個用途是在完整的模式中定義子模式。當一個正則表達式成功地和目標字符串相匹配時,能夠從目標串中抽出和括號中的子模式相匹配的部分.例如,假定咱們正在檢索的模式是一個或多個字母后面跟隨一位或多位數字,那麼咱們可使用模式 / [a-z] + \ d+/.可是因爲假定咱們真正關心的是每一個匹配尾部的數字,那麼若是咱們將模式的數字部分放在括號中 (/ [a-z] + (\d+)/) ,咱們就能夠從所檢索到的任何匹配中抽取數字了,以後咱們會對此進行解析的.字符串

三、代括號的子表達式的另外一個用途是,容許咱們在同一正則表達式的後面引用前面的子表達式.這是經過在字符串 \ 後加一位或多位數字來實現的.數字指的是代括號的子表達式在正則表達式中的位置.例如: \1 引用的是第一個代括號的子表達式. \3 引用的是第三個代括號的子表達式.注意,因爲子表達式能夠嵌套在其它子表達式中,因此它的位置是被計數的左括號的位置.語法

相關文章
相關標籤/搜索