Веб-сайт, на котором я работал, не будет сопоставлять данные с использованием шаблона регулярного выражения PHP (preg_match), который, кажется, работает везде, где я его тестировал. Этот шаблон:Являются ли эти шаблоны регулярных выражений разными?
<channel.*?>(.*?)</channel>
Он сопоставляется с RSS-каналом с тегом канала.
Теперь сервер я работаю над будет производить только правильный результат, если изменить его на:
<channel.*?>(.*)?</channel>
Моя регулярное выражение не является лучшим в мире, поэтому мне интересно, если кто-нибудь может сказать мне, если существует существенная разница между двумя шаблонами.
Небольшое примечание. Я понимаю, что было бы лучше использовать SimpleXML и т. Д., Но это регулярное выражение из предыдущего приложения и по разным причинам мне не разрешено изменять его.
Заранее благодарим за любые идеи.
Является ' '' ваш PCRE разделителем? Если это так, модификатор 's' может или не может иметь значение (я не совсем уверен). – BoltClock
Да '' 'является разделителем PCRE. Он использовался тем, кто первоначально написал код, обычно использует '#' или '~'. – Vunus