我想在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