Regex с Lookahead не соответствует последнему результатуPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Regex с Lookahead не соответствует последнему результату

Сообщение Anonymous »

Посмотрите на эту довольно простой REGEX по адресу https://regex101.com/r/jt7kgw/1
Я хочу сопоставить всю строку, которая начинается с буквы Q и получить все после буквы Q , но она не может содержать XXX . Я придумал эту форму, которая отлично работает: < /p>

Код: Выделить всё

/q(.+?)(?=xxx)/
Если я тестирует эту переоборудование с помощью строки 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»