javascript正则表达式模式匹配单词,自定义单词边界

时间:2014-09-29 09:04:54

标签: javascript regex

我试图在javascript中使用正则表达式匹配字符串中的单词。

让我们说字符串是"我有c ++作为技巧"。我现在想要计算" c ++"的出现次数。子。如果字符串是"我有c ++测试"我不想匹配或类似的。所以我需要检查单词边界并包含一些特殊字符,如+和#。

我有以下代码:

var str = "I have c++ as a skill, but I do not have c++test as a skill";

var regex = new RegExp("(?<![\\w+#])c\\+\\+(?![\\w+#])", "g");

count = (str.match(regex) || []).length; 

console.log(count); 

预期结果为&#34; 1&#34;。

这在行var regex上失败了......错误:

SyntaxError: Invalid regular expression: /(?<![\w+#])c\+\+(?![\w+#])/: Invalid group 

我没有看到我需要改变什么来使我的边界工作,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

尝试类似:

var regex = new RegExp("([^\\w#]|^)c\\+\\+(?=[^\\w#]|$)", "g");