在正則表達式中,定位符,說白了,就是限定某些字符出現的位置。
常用的正則表達式定位符如下:
在正則表達式中,使用^定位符來限定開始位置的字符。
舉例1:
^a
分析:
由於使用了^定位符,因此字符串中必須以a開頭。所以匹配上面正則表達式的字符有abc、absolute等以a開頭的字符串,但是back、123等就不匹配了。
在正則表達式測試工具驗證效果如下:
舉例2: 深入了解上尖號
^a [^a]
分析:
上尖號的使用有2種情況:(1)定位符;(2)[^…]元字符。
很多初學者容易混淆上尖號,其實大家可以這樣理解:上尖號,只有一種特殊情況,就是[^…]這種元字符的時候,上尖號才表示“非”,其他情況,上尖號都是表示定位符。
在正則表達式中,使用$定位符來限定結尾位置的字符。
舉例:
$a
分析:
由於使用了$定位符,因此字符串中必須以a結尾。所以匹配上面正則表達式的字符串有panda、nana等以a結尾的字符串,但是abc、helicopter等就不匹配了。
在正則表達式中,使用$定位符來限定一個單詞開始或結束時的字符。怎麼理解呢?請看下面的例子。
\b包含了字與空格間的位置,以及目標字符串的開始和結束位置等。
舉例1:
er\b
分析:
“er\b”匹配“order to”中的er,但不匹配“verb”中的“er”。
舉例2:
\ba[a-z]{7}\b
分析:
上面正則表達式匹配以字母“a”開頭的長度等於8的任意單詞。因此\b限定了單詞的開頭和結尾。
使用2個\b來匹配一個單詞,這是very very 常用的方法。如果大家以後見到正則表達式中有2個\b,也應該知道這是匹配單詞的。
在正則表達式中,使用\B定位符來限定一個非單詞開始或結束時的字符。
舉例:
er\B
分析:
“er\B”匹配“verb”中的“er”,但不匹配“order”中的“er”。
\B用得比較少,而\b用得更多一些,因為往往都是\b來匹配一個單詞什麼,也很好用。
總結1、常用的正則表達式定位符如下:
初學者記不住也沒關系,以後用到的時候回這裡來查就知道了,查多幾次,就記得了。