Сопоставление внутреннего шаблона неограниченное количество раз внутри внешнего шаблона - PullRequest
0 голосов
/ 31 июля 2010

Скажем, у меня есть следующий шаблон:

INDICATOR\s+([a-z0-9]+)

, который будет соответствовать, например:

INDICATOR AA или INDICATOR B3

Мне нужно отредактировать этот шаблон так, чтобы он совпадал с любыми экземплярами строки, которая начинается с INDICATOR, имеет пробел, а затем содержит несколько совпадений внутреннего шаблона, например

INDICATOR AA A3 66 B8 34 CDINDICATOR BG 4D CSINDICATOR HG

Возможно ли это сделать?

Решение

Благодаря Gumbo я предложил следующее регулярное выражение, отвечающее моим требованиям:

INDICATOR((\s+)?([,-])?(\s+)?([a-z0-9]+))+

1 Ответ

2 голосов
/ 31 июля 2010

Попробуйте это:

INDICATOR(\s+([a-z0-9]+))+

Здесь повторяющийся шаблон заключен в группу и количественно определен с использованием +, чтобы разрешить одно или несколько повторений выражения внутри группы.Но вы получите не каждое совпадение внутренней группы, а только последнее совпадение (или, если быть более точным: это зависит от используемой вами реализации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...