我正在读一本关于正则表达的书,我遇到了这个示例\b
:
那只猫把他的食物分散在整个房间里。
使用正则 - \bcat\b
将匹配单词cat
但不是cat
在scattered
。
为了\B
作者使用以下示例:
请输入九位数字的ID
出现在您的颜色上 - 编码的通键。
使用正则\B-\B
火柴-
在单词之间color - coded
。使用\b-\b
另一方面与-
在nine-digit
和pass-key
。
在第一个示例中如何使用我们使用\b
分开cat
并在第二次使用中\B
分开-
?使用\b
在第二个示例中,与之前所做的相反。
请向我解释区别。
编辑:另外,有人可以用新示例解释吗?
答案
混乱源于你的思想\b
匹配空格(可能是因为"b"暗示"空白")。
\b
匹配空字符串单词的开始或结尾 。\B
在单词的开头或结尾处匹配空字符串。这里的关键是" - “不是单词的一部分。所以<left>-<right>
火柴\b-\b
因为在-
。另一方面<left> - <right>
(请注意空间),仪表板的两侧都没有单词边界。单词边界是左右的一个空间。
另一方面,搜索\bcat\b
单词边界的行为更加直观,并且与预期的"猫"匹配。