位置匹配用來解決在什麼地方進行字串匹配操作的問題。
例1
要求匹配文字裡的cat單詞
#文字
the cat scattered his food all over the room.
#正規表示式
cat
#結果 the
cat s
catteredhis food all over the room.
從結果來看,不僅是單詞cat,單詞scattered裡的cat也被匹配了,這不是我們想要的結果。能夠正確解決這個問題的辦法只有使用邊界限定符。
限定符\b指定單詞邊界。顧名思義,\b用來匹配乙個單詞的開始或結尾。\b匹配的是這樣乙個位置,這個位置位於乙個能夠用來構成單詞的字元(也就是與\w相匹配的字元)和乙個不能構成單詞的字元(也就是與\w相匹配的字元)之間。
例2
#文字
the cat scattered his food all over the room.
#正規表示式
\bcat\b
#結果
the
cat scattered his food all over the room.
這樣,就達到了我們的預期目標。注意,\bcat\b匹配到的字元長度是3個而不是5個。
如果不匹配乙個單詞邊界,請使用\b。
例2
#文字
please enter the nine-digit id as it
#正規表示式
\b-\b
#結果- coded pass-key.
\b-\b將匹配乙個前後都不是單詞邊界的連字元,nine-digit和pass-key中的連字元不能與之匹配,但是color – coded中的連字元可以。
單詞邊界可以用來進行與單詞有關的位置匹配。字串邊界有著類似的用途,只不過是用來進行與字串有關的位置匹配而已。
用來定義字串邊界的元字元有兩個:乙個用來定義字串開頭的^,另乙個用來定義字串結尾的$。
例1
#文字
<?xml version='1.0' encoding='utf-8' ?>
...<?xml version='1.0' encoding='utf-8' ?>
...
#正規表示式
^\s*<\?xml.*\?>
#結果
<?xmlversion='1.0' encoding='utf-8' ?>
<?xml version='1.0' encoding='utf-8'?>
...由結果可知,因為有^的存在,所以只匹配了第一行的<?xml version='1.0' encoding='utf-8' ?>,第三行並未匹配。
^\s*匹配乙個字串的開頭位置和隨後的零個或者多個空白字元。
正規表示式匹配位置速查
正則是匹配模式,要麼匹配字元,要麼匹配位置。下表是匹配位置的元字元 位置 模式說明 匹配開頭的位置,當正則有修飾符 m 時,表示匹配行開頭位置 匹配結尾的位置,當正則有修飾符 m 時,表示匹配行結尾位置 b匹配單詞邊界,即,w 與 w 與 w w 與 之間的位置 b匹配非單詞邊界,即,w 與 w w...
正規表示式入門之字元匹配
在前段時間進行文字挖掘練習的時候,不會使用正規表示式,深感不宜。所以這裡,我想趕緊學習一下正規表示式。注 本文是對 正規表示式必知必會 的複習。正規表示式是一些用來匹配和處理文字的字串,正規表示式語言用來構造正規表示式 最終構造出的字串就成為正規表示式 正規表示式語言並不是一種完備的程式語言,它甚至...
正規表示式入門之重複匹配
例1 比如我想匹配文字裡所有的郵箱 文字 文字 send e mail to tom and ada,their mailbox is 1944786548 qq.com and 18755518273 163.com,don t forget,green s mailbox is green.su...