Полезна ли ленивая версия необязательного квантификатора (??) в регулярном выражении? - PullRequest
6 голосов
/ 11 июня 2009

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

Ответы [ 2 ]

9 голосов
/ 11 июня 2009

Возможно, список разделен разделителем, и вы не хотите совпадать с любым завершающим разделителем.

^((?:[^,]+,??)+),?$

Это будет захватывать "a,b,c" из "a,b,c,", где в качестве варианта без ленивства будет включена запятая в группе захвата.

2 голосов
/ 11 июня 2009

Я бы использовал его как оптимизацию, если дополнительная часть обычно отсутствует.

Foo(PartUsuallyPresent)?Bar

Foo(PartUsuallyAbsent)??Bar

Но мне определенно не хватает реального примера.

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