Префикс, не связанный с захватом RegEx Javascript

Я пытаюсь заменить строку с помощью RegEx в Javascript. Сценарий представляет собой однострочную строку, содержащую длинный список чисел, разделенных запятыми, в котором возможны дубликаты.

Пример строки: 272,2725,2726,272,2727,297,272 (Конец может заканчиваться запятой, а может и не заканчиваться)

В этом примере я пытаюсь сопоставить каждое вхождение целого числа 272. (ожидается 3 совпадения) Пример регулярного выражения, который я пытаюсь использовать: (?: ^ |,) 272 (? = $ |,)

Проблема, с которой я столкнулся, заключается в том, что второе и третье совпадения включают начальную запятую, чего я не хочу. Я запутался, потому что думал, что (?: ^ |,) будет соответствовать, но не захватить. Может ли кто-нибудь пролить свет на это для меня? Интересно то, что конечная запятая исключается из результата, чего я и хочу.

Как бы то ни было, если бы я использовал C #, для сопоставления префиксов существует синтаксис, который делает то, что я хочу: ( ? <= ^ |,) Однако, похоже, это не поддерживается в JavaScript.

Наконец, я знаю, что могу обойти это, используя разбиение строк, манипуляции с массивами и повторное соединение, но я хочу научиться.

10
задан Derek Bromenshenkel 4 May 2011 в 15:14
поделиться