Я пытаюсь совместить слова в строке с использованием регулярного выражения в javascript.javascript regex pattern для соответствия словам, с пользовательской границей слов
Допустим, что строка «У меня есть 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".
Это происходит сбой на линии вар регулярное выражение ... с ошибкой:
SyntaxError: Invalid regular expression: /(?<![\w+#])c\+\+(?![\w+#])/: Invalid group
я не понимаю, что мне нужно изменить, чтобы сделать свою работу граничное, кто может мне помочь?
Вы можете использовать Regex литералов, их легче читать, потому что они не нуждаются в двойной вытекание: (? MarioDS
В JS:' Lookbehind не поддерживается вообще. Lookahead полностью поддерживается. ' – Krzysiek
Если бы я был вами, я бы использовал: \ sc \\ + \\ + \ s –