我想在JavaScript中使用正则表达式匹配字符串中的单词。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);
预期的结果是 “1”。
这是没有上线的VAR正则表达式...出现错误:
SyntaxError: Invalid regular expression: /(?<![\w+#])c\+\+(?![\w+#])/: Invalid group
我看不出什么,我需要改变,以使我的边界工作,谁能帮助我?
您可以使用正则表达式文字,他们更容易阅读,因为他们并不需要双转义:(?<![\ w +#])'/ C \ + \ +(?![\ w +#])/' – MarioDS 2014-09-29 09:07:22
在JS中:'Lookbehind根本不被支持。 Lookahead is fully supported.' – Krzysiek 2014-09-29 09:09:02
如果我是你,我会用:\ sc \\ + \\ + \ s – 2014-09-29 09:10:11