正则表达式 - 元字符 \b 与 \B
单词边界 \b
在正则表达式中,\b 是一个特殊的元字符,表示单词边界。它匹配一个单词的开始或结束的位置,而不匹配任何实际的字符。
具体来说,\b 匹配以下三种情况之一:
- 单词的开头:如果
\b
出现在一个字母或数字之前,或者在字符串的开头,它会匹配一个单词的开始位置。 - 单词的结尾:如果
\b
出现在一个字母或数字之后,或者在字符串的末尾,它会匹配一个单词的结束位置。 - 单词的内部:如果
\b
出现在两个连续的字母或数字之间,它不会匹配任何内容,因为没有单词边界。
以下是一些元字符 \b 的实例:
- 正则表达式
\bword\b
匹配整个单词 "word",但不匹配 "words" 或 "sword"。 - 正则表达式
\b\d+\b
匹配一个完整的数字,例如 "123",但不匹配 "abc123"。 - 正则表达式
\b[A-Z]+\b
匹配一个完整的大写字母单词,例如 "HELLO",但不匹配 "HELLO WORLD"。
需要注意的是,\b 是一个零宽度断言,它不匹配实际的字符,只匹配位置,因此,当你想要匹配一个实际的字符时,不要使用 \b,而应该使用其他字符或字符组合。
非单词边界 \B
在正则表达式中,\B 是 \b 的反义符号,它表示非单词边界,即匹配不在单词边界处的位置。
具体来说,\B 匹配以下情况之一:
- 单词的内部:如果
\B
出现在两个连续的字母或数字之间,它会匹配这两个字符之间的位置,表示它们不是单词的边界。 - 非单词的开头或结尾:如果
\B
出现在一个字母或数字之前或之后,它会匹配这个位置,表示它不是单词的开头或结尾。
以下是一些元字符 \B 的实例:
- 正则表达式
\Bword\B
匹配 "sword" 中的 "word",但不匹配 "word" 或 "words"。 - 正则表达式
\B\d+\B
匹配 "abc123def" 中的 "123",但不匹配 "123" 或 "abc123xyz"。 - 正则表达式
\B[A-Z]+\B
匹配 "HELLO WORLD" 中的 "ELLO",但不匹配 "HELLO" 或 "WORLD"。
需要注意的是,与 \b 不同,\B 也是一个零宽度断言,只匹配位置而不匹配实际的字符。
点我分享笔记