2.5. 修飾匹配次數的特殊符號
前面章節中講到的表示式,無論是只能匹配一種字元的表示式,
還是可以匹配多種字元其中任意乙個的表示式,都只能匹配一次。如果使用表示式再加上修飾匹配次數的特殊符號,那麼不用重複書
寫表示式就可以重複匹配。
使用方法是:"次數修飾"放在"被修飾的表示式"後邊。
表示式
重複 n 次
比如:"/w" 相當於 "/w/w";
比如:"a" 相當於 "aaaaa";
比如:表示式
"[bcd][bcd]" 可以寫成 "[bcd]"。
表示式 至少重複 m 次,最多重複 n 次,
比如:"ba"可以匹配 "ba"或"baa"或"baaa"
表示式
至少重複 m 次
比如:"/w/d"可以匹配
"a12","_456","m12344"...
表示式 ?
匹配 0 次或者 1 次,相當於
比如:"a[cd]?"可以匹配 "a","ac","ad"
表示式 + 至少出現 1 次,相當於
比如:"a+b"可
以匹配 "ab","aab","aaab"...
表示式 * 不出現或出現任意次,相當於
比如:"/^*b"可以匹配 "b","^^^b"...
舉例 1:
表示式 "/d+/.?/d*" 在匹配 "it costs $12.5" 時,匹配的
結果是:成功;匹配到的內容是:"12.5";匹配到的位置是:開始於
10,結束於 14。
舉例 2:
表示式 "gogle" 在匹配 "ads by goooooogle" 時,匹配
的結果是:成功;匹配到的內容是:"goooooogle";匹配到的位置是:
開始於 7,結束於 17。
2.6. 其他一些代表抽象意義的特殊符號
一些符號在表示式中代表抽象的特殊意義:
表示式 ^
與字串開始的地方匹配,不匹配任何字元
表示式
$
與字串結束的地方匹配,不匹配任何字元
表示式
/b
匹配乙個單詞邊界,也就是單詞和空格之間的位置,不
匹配任何字元
進一步的文字說明仍然比較抽象,因此,舉例幫助大家理解。
舉例 1:
表示式 "^aaa" 在匹配 "*** aaa ***" 時,匹配結果是:失敗。
因為 "^" 要求與字串開始的地方匹配,因此,只有當 "aaa" 位於字
符串的開頭的時候,"^aaa" 才能匹配,比如:"aaa *** ***"。
舉例 2:
表示式 "aaa$" 在匹配 "*** aaa ***" 時,匹配結果是:失敗。
因為 "$" 要求與字串結束的地方匹配,因此,只有當 "aaa" 位於字
符串的結尾的時候,"aaa$" 才能匹配,比如:"*** *** aaa"。
舉例 3:
表示式 "./b." 在匹配 "@@@abc" 時,匹配結果是:成功;
匹配到的內容是:"@a";匹配到的位置是:開始於 2,結束於 4。
進一步說明:"/b" 與 "^" 和 "$" 類似,本身不匹配任何字元,但是
它要求它在匹配結果中所處位置的左右兩邊,其中一邊是 "/w" 範圍,
另一邊是 非"/w" 的範圍。
舉例 4:
表示式 "/bend/b" 在匹配 "weekend,endfor,end" 時,匹配
結果是:成功;匹配到的內容是:"end";匹配到的位置是:開始於
15,結束於 18。
一些符號可以影響表示式內部的子表示式之間的關係:
表示式 | 作用
左右兩邊表示式之間 "或" 關係,匹配左邊或者右
邊
表示式 ( ) 有如下作用
(1). 在被修飾匹配次數的時候,括號中的表示式可
以作為整體被修飾
(2). 取匹配結果的時候,括號中的表示式匹配到的內
容可以被單獨得到
舉例 5:表示式 "tom|jack" 在匹配字串 "i'm tom, he is jack"
時,匹配結果是:成功;匹配到的內容是:"tom";匹配到的位置是:
內容是:"jack";匹配到的位置時:開始於 15,結束於 19。
舉例 6:
表示式 "(go/s*)+" 在匹配 "let's go go go!" 時,匹配結果是:
成功;匹配到內容是:"go go go";匹配到的位置是:開始於 6,結
束於 14。
舉例 7:
表示式 "¥(/d+/.?/d*)" 在匹配 "$10.9,¥20.5" 時,匹配的
結果是:成功;匹配到的內容是:"¥20.5";匹配到的位置是:開始
於 6,結束於 10。單獨獲取括號範圍匹配到的內容是:"20.5"。
第三片知識點博文:
正規表示式手冊
正規表示式手冊 字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串...
正規表示式手冊
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果...
正規表示式 學習手冊 一
1.引言 正規表示式 regular expression 描述了一種字串匹配的模式,可以用來 1 檢查乙個串中是否含有符合某個規則的子串,並且可以得到這個子串 2 根據匹配規則對字串進行靈活的替換操作。2.正規表示式規則 2.1.普通字元 表示式 r 可匹配 回車表示式 n 可匹配 換行符表示式 ...