Как применить ленивый квантификатор в данном сценарии?
Я пытаюсь сопоставить вхождение с регулярным выражением:
в (.*?) ГОРОД [\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, чтобы не соответствовать
.)*
количественно