我正在读一本关于正则表达的书,我遇到了这个示例\b:

那只猫把他的食物分散在整个房间里。

使用正则 - \bcat\b将匹配单词cat但不是catscattered

为了\B作者使用以下示例:

请输入九位数字的ID

出现在您的颜色上 - 编码的通键。

使用正则\B-\B火柴-在单词之间color - coded。使用\b-\b另一方面与-nine-digitpass-key

在第一个示例中如何使用我们使用\b分开cat并在第二次使用中\B分开-?使用\b在第二个示例中,与之前所做的相反。

请向我解释区别。

编辑:另外,有人可以用新示例解释吗?

答案

混乱源于你的思想\b匹配空格(可能是因为"b"暗示"空白")。

\b匹配空字符串单词的开始或结尾\B在单词的开头或结尾处匹配空字符串。这里的关键是" - “不是单词的一部分。所以<left>-<right>火柴\b-\b因为在-。另一方面<left> - <right>(请注意空间),仪表板的两侧都没有单词边界。单词边界是左右的一个空间。

另一方面,搜索\bcat\b单词边界的行为更加直观,并且与预期的"猫"匹配。

来自: stackoverflow.com