Как применить ленивый квантификатор в данном сценарии?

Я пытаюсь сопоставить вхождение с регулярным выражением:

в (.*?) ГОРОД [\d]

против

Джон из прекрасного CITY1 в sdfsf в dsfs в sf в abc CITY2 в CITY3 в течение 3 дней

Я получаю два матча:

для DSFS в SF для ABC CITY2 
в CITY3

Моя проблема в том, что я хочу регулярный опыт, используя который я мог бы получить совпадение как "abc CITY2" вместо "to dsfs в sf to abc CITY2".

Я читал о ленивых квантификаторах, но не смог применить его в этом сценарии.

1 ответ

Решение
\bto\b(?:(?!\bto\b).)*?CITY\d+

Попробуйте это. См. Демо.

http://regex101.com/r/iZ9sO5/7

Здесь мы используем отрицательный взгляд, чтобы обеспечить любой символ после to не совпадает toТак что он выберет ближайший to в City,

(?!\bto\b) negaitve lookahead, чтобы не соответствовать

.)* количественно

Другие вопросы по тегам