正则表达式入门之位置匹配
正則表達式-位置匹配
位置匹配用來解決在什么地方進行字符串匹配操作的問題。
1單詞邊界
例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 appears on your color - coded pass-key. #正則表達式 \B-\B#結果
Please enter the nine-digit id as it
appears on your color - coded pass-key.\B-\B將匹配一個前后都不是單詞邊界的連字符,nine-digit和pass-key中的連字符不能與之匹配,但是color – coded中的連字符可以。
?
2字符串邊界
單詞邊界可以用來進行與單詞有關的位置匹配。字符串邊界有著類似的用途,只不過是用來進行與字符串有關的位置匹配而已。
用來定義字符串邊界的元字符有兩個:一個用來定義字符串開頭的^,另一個用來定義字符串結尾的$。
例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*匹配一個字符串的開頭位置和隨后的零個或者多個空白字符。
總結
以上是生活随笔為你收集整理的正则表达式入门之位置匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 斐讯 FIR303C 无线路由器固件升级
- 下一篇: zookeeper安装及分布式配置