亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式中\ b和\ B之間的區別

正則表達式中\ b和\ B之間的區別

jeck貓 2019-07-30 11:19:21
正則表達式中\ b和\ B之間的區別我正在讀一本關于正則表達式的書,我遇到了這個例子\b:貓把食物散落在整個房間里。使用正則表達式- \bcat\b將匹配單詞cat而不是cat在scattered。對于\B作者使用以下示例:請輸入九位數的ID出現在顏色編碼的密鑰上。在單詞之間使用正則表達式\B-\B匹配。使用在另一方面相匹配的中和。-color - coded\b-\b-nine-digitpass-key為什么我們用第一個例子\b來分離cat和在第二個用途\B中分開-?使用\b在第二個例子中做的是什么前面卻反其道而行之。請向我解釋一下這個區別。編輯:此外,任何人都可以用一個新的例子來解釋?
查看完整描述

3 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

用不同的例子:

考慮這是要搜索的字符串和模式是'cat':

text = "catmania thiscat thiscatmaina";

現在定義,

'\ b'查找/匹配每個單詞開頭或結尾的模式。

'\ B'找不到/匹配每個單詞開頭或結尾的模式。

不同案例:

案例1:每個單詞的開頭

result = text.replace(/\bcat/g, "ct");

現在,結果是“ctmania thiscat thiscatmaina”

案例2:每個單詞的結尾

result = text.replace(/cat\b/g, "ct");

現在,結果是“catmania thisct thiscatmaina”

案例3:不是在開始

result = text.replace(/\Bcat/g, "ct");

現在,結果是“catmania thisct thisctmaina”

案例4:不是最后的

result = text.replace(/cat\B/g, "ct");

現在,結果是“ctmania thiscat thisctmaina”

案例5:既不是開始也不是結束

result = text.replace(/\Bcat\B/g, "ct");

現在,結果是“catmania thiscat thisctmaina”

希望這可以幫助 :)


查看完整回答
2 反對 回復 2019-07-30
?
米脂

TA貢獻1836條經驗 獲得超3個贊

混亂源于你的思維\b匹配空間(可能是因為“b”表示“空白”)。

\b匹配單詞開頭或結尾的空字符串。 \B匹配不在單詞開頭或結尾的空字符串。這里的關鍵是“ - ”不是單詞的一部分。因此<left>-<right>匹配,\b-\b因為在任何一側都有單詞邊界-。另一方面<left> - <right>(注意空格),短劃線兩側沒有單詞邊界。單詞邊界是左右一個空格。

另一方面,當搜索\bcat\b單詞邊界時,行為更直觀,并且按預期匹配“cat”。


查看完整回答
反對 回復 2019-07-30
  • 3 回答
  • 0 關注
  • 1732 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號