PHP - 有没有办法计算为您的需求而设计的正则表达式(正则表达式)?

时间:2015-10-11 12:37:09

标签: php regex

我正在尝试编写正则表达式来搜索字符串中的图像标记,然后使用'count'或'substr_count'来计算它们

EG: [image1],[image2]等等。

我是一个绝对的新秀正则表达,所以这对我来说非常困惑。在有人问之前,是的,我已经对它进行了一些研究,但我只是好奇是否有任何快捷方式,我和其他读这篇文章的人可能会错过。

我也发现了https://regex101.com/然而对于从那里去的地方一无所知。

我为上述示例所做的努力是:

'~(\[image([\d])+\]~i'

和..

'#[^a-z0-9.]#i'

如果有人可以告诉我如何搜索上述内容,或者指向正确的编程金矿方向,我们将不胜感激。

干杯, 富

2 个答案:

答案 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

<强>样本:

http://ideone.com/cQymaV

答案 1 :(得分:0)

preg_match_all函数已经返回了出现次数,您不需要使用count或其他内容:

if (false !== $count = preg_match_all('~\[image\d+]~i', $text))
    echo $count;