javascript - 与字边界相比,正则表达式 (\B) 中的非字边界是什么?

标签 javascript regex word-boundary boundary word-boundaries

与字边界相比,正则表达式 (\B) 中的非字边界是什么?

最佳答案

字边界 (\b) 是零宽度匹配,可以匹配:

  • 在单词字符 (\w) 和非单词字符 (\W) 之间或
  • 单词字符与字符串的开头或结尾之间。

在 Javascript 中,\w 的定义是 [A-Za-z0-9_]\W 是其他任何内容。

\b 的否定版本,写作 \B,是一个零宽度匹配,上面的内容成立。因此它可以匹配:

  • 两个单词字符之间。
  • 两个非单词字符之间。
  • 非单词字符与字符串的开头或结尾之间。
  • 空字符串。

例如,如果字符串是 "Hello, world!"\b 在以下位置匹配:

 H e l l o ,   w o r l d !
^         ^   ^         ^ 

并且 \B 匹配 \b 不匹配的地方:

 H e l l o ,   w o r l d !
  ^ ^ ^ ^   ^   ^ ^ ^ ^   ^

关于javascript - 与字边界相比,正则表达式 (\B) 中的非字边界是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541573/

相关文章:

regex - 用R中的数据帧中的正则表达式检测单词边界

php - MySQL REGEXP 仅匹配边界词,但不包括 html 标签中的匹配

javascript - Jquery Onload 函数停止 for 循环,在函数内部传递 for 循环 x

javascript - Moment.js 在特定时间创建弹出窗口

java - java中的正则表达式匹配

ruby-on-rails - 为什么这个正则表达式在 ruby​​ 中不匹配,但在任何其他语言中都匹配?

javascript - jQuery 需要帮助选择具有特定类的 div 元素内的 tr 元素

javascript - Highcharts 类别错误?

php - 如何验证正则表达式本身?

c# - 当单词以方括号等特殊字符开头或结尾时,单词边界不匹配