PHP regex后向引用不正确匹配

时间:2018-06-30 11:57:22

标签: php regex backreference

以下代码按预期工作:

<?php
preg_match_all('|<[^>]+>.*</[^>]+>|U',
    "<b>example: </b><div align=left>this is a test</div>",
    $out);
echo $out[0][0] . ", " . $out[0][1] . "\n";
?>

它与第一个b标签匹配,然后继续与div标签匹配。但是,当我使用向后引用时,只有b标签是匹配的。

<?php
preg_match_all('|<([^>]+)>.*</\1>|U',
    "<b>example: </b><div align=left>this is a test</div>",
    $out);
echo $out[0][0] . ", " . $out[0][1] . "\n";
?>

这里有什么不正确的地方?

此问题已被标记为重复。我读了这篇文章,但不确信这实际上是一个重复的问题。但是,发布的评论很有帮助,并使我理解了我的错误。谢谢。

0 个答案:

没有答案