Javascript reg ex仅匹配整个单词,仅由空格绑定

iam*_*mad 32 javascript regex

所以我知道\ bBlah\b将匹配整个Blah,但它也会匹配Blah的"Blah.jpg"我不想要它.我想只用两边的空格来匹配整个单词.

pol*_*nts 51

你可以尝试:\sBlah\s.

或者,如果您允许开始和结束锚点, (^|\s)Blah(\s|$)

这将匹配"Blah"本身,或每个Blah"Blah and Blah"

也可以看看


前瞻变种

如果你想同时匹配Blah"Blah Blah",则因为一个空间,这两个事件之间"共享",则必须使用断言.就像是:

(^|\s)Blah(?=\s|$)
Run Code Online (Sandbox Code Playgroud)

也可以看看


仅捕获 Blah

上面的正则表达式也会匹配前导空格.

如果你只想要Blah,理想情况下,lookbehind会很好:

(?<=^|\s)Blah(?=\s|$)
Run Code Online (Sandbox Code Playgroud)

但由于Javascript不支持它,你可以写:

(?:^|\s)(Blah)(?=\s|$)
Run Code Online (Sandbox Code Playgroud)

现在Blah将被捕获\1,没有领先的空白.

也可以看看


Pet*_*inz 20

匹配所有:

\bBlah\b
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

  • 这里没有必要使用替换,因为`\ b`包括`^`和`$`.Lookahead在这里也是多余的,因为`\ b`不匹配字符,而是边界.所以,一个简单的`\ bBlah\b`做同样的事情. (3认同)