正则表达式字边界打破' - '

时间:2014-11-07 08:07:54

标签: javascript regex string node.js

我有一个以下格式的字符串。

  

“ad60 ad60-12 ad60 12-ad60”

现在我想在只写“ad60”的地方找到匹配。

我从

开始
  

/ \ bad60 \ B / I

但正则表达式发现' - '不是字符串的一部分。返回4场比赛。 我尝试了很多东西,但他们都返回4场比赛或者什么也不返回。

任何形式的帮助都将受到赞赏。

3 个答案:

答案 0 :(得分:2)

您可以使用:

var s = "ad60 ad60-12 ad60 12-ad60";
var r = s.replace(/(^|\s)ad60(?=\s|$)/g, "$1@@");
//=> @@ ad60-12 @@ 12-ad60

答案 1 :(得分:0)

这应该找到从字母

开始的任何单词
/[a-z][a-z\d]+/i

<强> ADDED

如果你想找到包含ad60字符串的任何单词,请试试这个

/[a-z\d\-\_]*ad60[a-z\d\-\_]*/i

但是用空格分隔的单词不会进入结果

答案 2 :(得分:0)

"ad60 ad60-12 ad60 12-ad60".match(/(^ad60\s+)|(\s+ad60$)|(\s+ad60\s+)|(^ad60$)/ig);

将导致[&#34; ad60&#34;,&#34; ad60&#34;] 然后你可以修剪匹配元素中的空白区域。