沃梦达 / 编程问答 / php问题 / 正文

Preg_Match仅返回一次相同的元素

preg_match returns identical elements only once(Preg_Match仅返回一次相同的元素)

本文介绍了Preg_Match仅返回一次相同的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个字符串,并处理!--和--!之间所有元素。但只有独特的元素才是过程。当我有!--例子--!在文本中再往下看!--示例--!,忽略第二个。

代码如下:

while ($do = preg_match("/!--(.*?)--!/", $formtext, $matches)){

我知道preg_Match_all,但需要使用preg_Match来执行此操作。

有帮助吗?提前感谢!

php>

推荐答案

您将希望php仅在前一个匹配项之后查找匹配项。为此,您需要使用PREG_OFFSET_CAPTURE标志捕获字符串偏移量。

示例:

$offset = 0;
while (preg_match("/!--(.*?)--!/", $formtext, $match, PREG_OFFSET_CAPTURE, $offset))
{
    // calculate next offset
    $offset = $match[0][1] + strlen($match[0][0]);

    // the parenthesis text is accessed like this:
    $paren = $match[1][0];
}

有关详细信息,请参阅preg_match文档。

这篇关于Preg_Match仅返回一次相同的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Preg_Match仅返回一次相同的元素