Javascript正则表达式仅匹配整个单词,仅由空格绑定

时间:2010-06-01 17:31:06

标签: javascript regex

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

5 个答案:

答案 0 :(得分:49)

您可以尝试:\sBlah\s

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

这将自己匹配"Blah",或Blah

中的每个"Blah and Blah"匹配

另见


Lookahead变体

如果要匹配Blah中的"Blah Blah",那么由于两个匹配项之间的“共享”,您必须使用断言。类似的东西:

(^|\s)Blah(?=\s|$)

另见


仅捕获Blah

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

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

(?<=^|\s)Blah(?=\s|$)

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

(?:^|\s)(Blah)(?=\s|$)

现在Blah将在\1中捕获,没有前导空格。

另见

答案 1 :(得分:17)

匹配所有:

\bBlah\b

Regular expression visualization

Debuggex Demo

答案 2 :(得分:3)

尝试\sBlah\s - 它将匹配任何一方的任何形式的空白。

答案 3 :(得分:2)

(^|\s)Blah(\s|$)应该可以工作,但是如果你只想要这个单词,它也可以选择空格: (^|\s)(Blah)(\s|$)并参加第2组(红宝石2美元)。

如果需要RegEx的帮助,请结帐:http://www.gskinner.com/RegExr/

答案 4 :(得分:2)

提取字符串中的所有单词

words_array = str.match(/\b(\w|')+\b/gim)   //only single qout allowed