2014-11-27 5 views
0

Пример строки:Ограничение жадный регулярное выражение

?token=a12b3c4d5e&time=1417111248&message=Lorem ipsum dolor sit amet.&mode=reply&bbcode=1&topic=123456789


Пробовал захватывая сообщение с (?:\?|&)message=(.+)&, однако он не совпадет все до последнего & характера:

Lorem ipsum dolor sit amet.&mode=reply&bbcode=1

Как остановить группу захвата, когда она встречает & в первый раз?


Ожидаемый результат:

Lorem ipsum dolor sit amet.

+3

Добавить в корзину Или '' после '. +', чтобы сделать его неровным. – sjagr

+0

'(?: \? | &) Message = (. +?) &' Или '(?: \? | &) Message = ([^ &] +) &' –

ответ

3

Вы можете использовать очень простое регулярное выражение, как

message=[^&]+ 

Пример: http://regex101.com/r/rJ5qK2/1

  • [^&]+ матча эс ничего, кроме & один или более раз

ИЛИ

Вы также можете использовать не жадный .+? как

message=(.+?)& 

Пример A: http://regex101.com/r/rJ5qK2/2

Смежные вопросы