Посмотрите на эту довольно простой REGEX по адресу
https://regex101.com/r/jt7kgw/1
Я хочу сопоставить всю строку, которая начинается с буквы Q и получить все после буквы Q , но она не может содержать XXX . Я придумал эту форму, которая отлично работает: < /p>
Если я тестирует эту переоборудование с помощью строки Q111xxxx Q222xxx Q333xxx Я вернусь 111 , 222 и 333 (как вы можете увидеть в ссылке выше). Однако, если входной строкой является Q111xxxx Q2222XXX Q333 (я удалил последний XXX ) Я вернусь только 111 и 222 , но мне действительно нужен последний матч (который является 333 ).
https://regex101.com/r/7syo4x/1
q(?:(?:.+?)(?=xxx)|.+$)
< /code>
, что очень уродливо и не эффективно. Есть ли лучший способ сделать это?
Подробнее здесь:
https://stackoverflow.com/questions/795 ... ast-result