首頁 > web前端 > js教程 > 主體

關於正規表示式中\b的認識

一个新手
發布: 2017-10-20 11:11:24
原創
7182 人瀏覽過

\b用來設定單字界限。配對單字(由字母數字或底線組成的)的開始或結束(匹配開始時,單字之前不能有\w;匹配結束時,單字之後不能有\w)。寫在表達式某個字元或字串之前,表示此字元或字串之前不能有\w對應的字元;寫在字元後面,表示此字元之後不能有\w對應的字元。 所以\b可以只有一個放在字元前面或後面,也可以有2個(表示字元前後都不能有\w對應的字元)。

先看正確的情況

 

圖1
註:1.如果\b描述的不是由字母數字或底線組成的單詞,則表達式定義錯誤,永遠不會有字串與其匹配。如圖2:

圖2

#2.目標字串中匹配的只是單獨的單字,不包括前後的間隔(如空格,\W等),圖1中匹配的「Russell」字元兩邊的空格,沒有計入(測試工具顯示沒有藍色背景填充)。
目的:符合獨立的單字或字串的部分,業務規則是尋找所有有單字「Russell」獨立出現的地方。如表達式\bRussell\b  則Russell123abc不匹配,因為Russell後面不應該跟字母或數字或底線,Russell 123abc,Russell@123abc都匹配。
3.特殊情況。自相矛盾的表達式定義。

關於正規表示式中\b的認識因為:根據\b的定義,\b只是確保下列情況,目標字串才能匹配:\b前後的字元不能有\w,所以非\w(或說\W)的字元在\b前後會匹配上。注意,這裡要求要想匹配上一定是非\w的字符,所以正則的潛台詞已經說了:匹配上\b的字符身邊一定就是非\w字符了,所以要在\b表達式之後再加上非\w的其他表達式,才有可能讓目標字串匹配上。
所以類似這樣的正規則永遠不會被配對:\bhi\bnihao     目標字串hinihao      hi nihao      hi*nihao        hi @#$nihao  hi*nihao        hi @#$nihao  時 中。 。 。
因為\bhi\b要求了hi前後不能有字母數字或下劃線的字符,並且hi之後緊接著要是nihao字符串。所以hi前後這能是空格! @#¥%等特殊字符,而表達式中定義緊接著hi之後的是nihao,所以永遠都不會有目標字串和此正則匹配。

辦法:在定義正規則時,就把這個非\w用正規考慮進去(寫入運算式),修正正規為\bhi\b \W+nihao 則有
hinihao
hi nihao
hi@nihao
hi!@#$ nihao

後三個都符合

#

以上是關於正規表示式中\b的認識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!