正则表达式 - 元字符 \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 也是一个零宽度断言,只匹配位置而不匹配实际的字符。

正则表达式 - 元字符 正则表达式 - 元字符