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