Я пытаюсь написать регулярное выражение для поиска тегов изображений внутри строки, а затем подсчитать их с помощью "count" или "substr_count",
EG: [image1], [image2] и т.д. И т.д.
Я абсолютный новичок с регулярным выражением, так что это довольно запутанно для меня. Прежде чем кто-нибудь спросит, да, я немного поработал над этим, но мне было просто любопытно, есть ли какие-либо ярлыки, которые есть там, что я и кто-то еще читающий это может пропустить.
Я также нашел https://regex101.com/, однако не знаю, куда идти оттуда.
Мои усилия для приведенного выше примера:
'~(\[image([\d])+\]~i'
а также..
'#[^a-z0-9.]#i'
Если кто-то может показать мне, как искать выше, или указать мне в правильном направлении на программирование золотого рудника, это было бы более чем оценено.
Приветствия, богатые
Используйте preg_match_all, то есть:
$string = <<< LOL
some text with image1 and another
part of that contains image2
yet another image3
LOL;
preg_match_all('/(image\d+)/i', $string, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++) {
echo $matches[1][$i]."\n";
}
ВЫВОД:
image1
image2
image3
DEMO:
Функция preg_match_all
уже возвращает количество вхождений, вам не нужно использовать счет или что-то еще:
if (false !== $count = preg_match_all('~\[image\d+]~i', $text))
echo $count;
preg_match_all
возвращает количество вхождений, см. руководство по php: php.net/manual/en/function.preg-match-all.php