Regular Expressions 字边界

示例

的\b元字符

为了使查找整个单词更容易,我们可以使用metacharacter \b。它标志着开始 结束字母数字序列*的。同样,由于它仅用于标记此位置,因此实际上它本身不匹配任何字符。

*:通常将一个字母数字序列称为一个单词,因为我们可以使用一个\w(单词字符类)来捕获它的字符。但是,这可能会引起误解,因为其中\w还包括数字,并且在大多数情况下还包括下划线。

例子:

正则表达式输入值火柴?
\bstack\bstackoverflow,因为没有整个单词出现stack
\bstack\bfoo stack bar是的,因为之前和之后都没有stack
\bstack\bstack!overflow是的:以前没有任何东西,stack而且!不是文字字符
\bstackstackoverflow是的,因为之前没有任何东西stack
overflow\bstackoverflow是的,因为之后什么也没有overflow

的\B元字符

这与的相反\b,它与每个非边界字符的位置匹配。像一样\b,因为它匹配位置,所以它自己不匹配任何字符。这对于查找完整单词很有用。

例子:

正则表达式输入值火柴?
\Bb\Babc是的,因为b没有单词边界所包围。
\Ba\Babc,a左侧有字词边界。
a\Babc是的,a其右侧没有单词边界。
\B,\Ba,,,b是的,它与第二个逗号匹配,因为它\B也将匹配两个非单词字符之间的空格(应注意,第一个逗号的左侧和第二个逗号的右侧都有一个单词边界)。