我正在尝试编写正则表达式来搜索字符串中的图像标记,然后使用'count'或'substr_count'来计算它们
EG: [image1],[image2]等等。
我是一个绝对的新秀正则表达,所以这对我来说非常困惑。在有人问之前,是的,我已经对它进行了一些研究,但我只是好奇是否有任何快捷方式,我和其他读这篇文章的人可能会错过。
我也发现了https://regex101.com/然而对于从那里去的地方一无所知。
我为上述示例所做的努力是:
'~(\[image([\d])+\]~i'
和..
'#[^a-z0-9.]#i'
如果有人可以告诉我如何搜索上述内容,或者指向正确的编程金矿方向,我们将不胜感激。
干杯, 富
答案 0 :(得分:1)
使用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
<强>样本:强>
答案 1 :(得分:0)
preg_match_all
函数已经返回了出现次数,您不需要使用count或其他内容:
if (false !== $count = preg_match_all('~\[image\d+]~i', $text))
echo $count;