我试图在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
我没有看到我需要改变什么来使我的边界工作,任何人都可以帮助我吗?
答案 0 :(得分:2)
尝试类似:
var regex = new RegExp("([^\\w#]|^)c\\+\\+(?=[^\\w#]|$)", "g");