Не могу понять, почему условие OR в моем регулярном выражении не работает.Regexp: | (OR) условие не работает
$str = " <li><a href=\"\" class=\"gateway-image\"><img src=\"<?=theme_url()?>/images/Cherry Credits.jpg\" alt=\"\"/></a></li>
<li><a href=\"\" class=\"gateway-image\"><img src=\"<?=theme_url()?>/images/gudangvoucher.jpeg\" alt=\"\" style=\"width: 140px!important\"/></a></li>";
$regexp = '/^(.*\<li\>\<a href\=)(.*cherry|credits.*)$/im';
preg_match($regexp, $str, $m);
кажется регулярное выражение является правильным, но он не может найти строку Cherry Credits.jpg
как я ожидал. Что не так?
Ваше выражение ожидает либо 'cherry' в конце строки, либо' credits' сразу после 'href ='. Таким образом, совпадение не возвращается. –
@ WiktorStribiżew но есть. * В конце –
Даже если есть '. *', После «href =» нет «вишни». Каково правило для извлечения? Получите все значения «href», содержащие «вишню» или «кредиты»? –