array_walk($tests, function ($phrase) use ($regex) {
echo sprintf('%s: %s' . "\n", $phrase, preg_match($regex, $phrase) ? 'Matches' : 'Does not match');
});
array_walk($tests, function ($phrase) use ($regex) {
printf('%s: %s' . "\n", $phrase, preg_match($regex, $phrase) ? 'Matches' : 'Does not match');
});
Всем привет. Я новичок и только начинаю осваивать регулярки, но попалась задача которую надо решить и я уже голову сломал, пока что не получается. И помочь никто не может.Вот этот текст и ему подобный - и есть вода, не имеющая отношения к задаче, я говорю серьёзно и без какой либо личной цели (типа потроллить - таким не страдаю). Всё, что из вашего описания становится понятным, дак это получить начало двух тегов, а именно
<img
и <figure
, а весь остальной текст должен быть удалён -- так? ... Я уверен, что не так, потому и написал для вас подсказку в предыдущем комментарии. sscanf($str, '%2s%2s%2s', $year, $month, $day);
? Зачем сюда list() городить ? Поиск литеральных символов (буквы латинского алфавита):
~<\pL+\d?\K.*?(?=>)~
^^^^
После букв может находиться одна (или ни одной) цифра (например для тега h1):
~<\pL+\d?\K.*?(?=>)~
^^^
Далее записана последовательность символов \K, означающая очистку буфера (удаление из памяти REGEXP ранее найденных соответствий):
~<\pL+\d?\K.*?(?=>)~
^^
Далее следует любая последовательность символов:
~<\pL+\d?\K.*?(?=>)~
^^^
За которыми обязательно должна быть угловая скобка:
~<\pL+\d?\K.*?(?=>)~
^^^^^