$str = 'title="room 5 stars"';
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
Мне нужно захватить номер 5 из заголовка. Регулярное выражение не работает!Номер Grab с использованием Preg_Match
Если я это сделать:
preg_match_all('/title="([0-9]+)"/sm', $str, $rate);
я получаю:
'/title="([0-9]+)"/sm'
Где я ошибся:
room 5 stars
Однако это один ничего не вернуть?
протестировали на самом деле вы ваше регулярное выражение? Он будет соответствовать строке, но не будет записывать номер. – ohaal
@ohaal не обижайтесь, но не могли бы вы рассказать мне об ошибке, поэтому я не буду этого делать в будущем. Я редактировал код для группового сопоставления. – Vishal
Прошу прощения за то, что не вдаваясь в подробности в своем предыдущем комментарии, я спешил. Убрал -1, поскольку, похоже, вы исправили свой ответ. У вас был '/ title =". *? (\ D) *. *? "/', Который не фиксировал фактическое число. Причина этого заключается в том, что '*' эквивалентен '{0,}', и поскольку нежелательное соответствие '. *?' Не имело ничего общего с ним, вся строка будет сопоставлена с вашим последним не жадным '. *?' match. – ohaal