正则表达式 – 元字符 b 与 B

秋山信月归

正则表达式 - 元字符 \b 与 \B

\b 和 \B 是正则表达式中的两个特殊元字符,用于匹配单词边界。


单词边界 \b

在正则表达式中,\b 是一个特殊的元字符,表示单词边界。它匹配一个单词的开始或结束的位置,而不匹配任何实际的字符。

具体来说,\b 匹配以下三种情况之一:

  • 单词的开头:如果 \b 出现在一个字母或数字之前,或者在字符串的开头,它会匹配一个单词的开始位置。
  • 单词的结尾:如果 \b 出现在一个字母或数字之后,或者在字符串的末尾,它会匹配一个单词的结束位置。
  • 单词的内部:如果 \b 出现在两个连续的字母或数字之间,它不会匹配任何内容,因为没有单词边界。

以下是一些元字符 \b 的实例:

需要注意的是,\b 是一个零宽度断言,它不匹配实际的字符,只匹配位置,因此,当你想要匹配一个实际的字符时,不要使用 \b,而应该使用其他字符或字符组合。

// 使用 \b 进行单词匹配
var patternWord = /\bword\b/;
var textWord = 'This is a word in a sentence.';

if (patternWord.test(textWord)) {
    document.write('找到匹配的单词:', patternWord.exec(textWord)[0]);
} else {
    document.write('没有找到匹配的内容!');
}


非单词边界 \B

在正则表达式中,\B 是 \b 的反义符号,它表示非单词边界,即匹配不在单词边界处的位置。

具体来说,\B 匹配以下情况之一:

  • 单词的内部:如果 \B 出现在两个连续的字母或数字之间,它会匹配这两个字符之间的位置,表示它们不是单词的边界。
  • 非单词的开头或结尾:如果 \B 出现在一个字母或数字之前或之后,它会匹配这个位置,表示它不是单词的开头或结尾。

以下是一些元字符 \B 的实例:

  • 正则表达式 \B\d+\B 匹配 "abc123def" 中的 "123",但不匹配 "123" 或 "abc123xyz"。
  • 正则表达式 \B[A-Z]+\B 匹配 "HELLO WORLD" 中的 "ELL" 和 "ORL",但不匹配 "HELLO" 或 "WORLD"。
  • 需要注意的是,与 \b 不同,\B 也是一个零宽度断言,只匹配位置而不匹配实际的字符。

    // 使用 \B 进行非单词匹配
    var patternWord = /\Bword\B/;
           
    // 这个就找到了
    var textWord = 'This is a password123 in a sentence.';
           
    // 这个就找不到了
    //var textWord = 'This is a password in a sentence.';
    if (patternWord.test(textWord)) {
        document.write('找到匹配的单词:', patternWord.exec(textWord)[0]);
    } else {
        document.write('没有找到匹配的内容!');
    }

    版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码