Preg_Match仅返回一次相同的元素
我正在处理一个字符串,并处理!--和--!之间所有元素。但只有独特的元素才是过程。当我有!--例子--!在文本中再往下看!--示例--!,忽略第二个。
php>
代码如下:
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文档。
相关文章