Я пытаюсь заменить строку с помощью RegEx в Javascript. Сценарий представляет собой однострочную строку, содержащую длинный список чисел, разделенных запятыми, в котором возможны дубликаты.
Пример строки: 272,2725,2726,272,2727,297,272
(Конец может заканчиваться запятой, а может и не заканчиваться)
В этом примере я пытаюсь сопоставить каждое вхождение целого числа 272. (ожидается 3 совпадения)
Пример регулярного выражения, который я пытаюсь использовать: (?: ^ |,) 272 (? = $ |,)
Проблема, с которой я столкнулся, заключается в том, что второе и третье совпадения включают начальную запятую, чего я не хочу. Я запутался, потому что думал, что (?: ^ |,)
будет соответствовать, но не захватить. Может ли кто-нибудь пролить свет на это для меня? Интересно то, что конечная запятая исключается из результата, чего я и хочу.
Как бы то ни было, если бы я использовал C #, для сопоставления префиксов существует синтаксис, который делает то, что я хочу: ( ? <= ^ |,)
Однако, похоже, это не поддерживается в JavaScript.
Наконец, я знаю, что могу обойти это, используя разбиение строк, манипуляции с массивами и повторное соединение, но я хочу научиться.