对于这样的字符串:
<h3>title</h3>
<h4>title</h4>
如何匹配对应的标签并获取它们中的文本?
这个方法可以实现,但是它不必要地获取了标签名称:
'@<(h[34])>(.+)</\1>@sU'
然而,这似乎不起作用,因为我不想获取标签名称,只想回溯它:
'@<(?:h[34])>(.+)</\1>@sU'
我正在使用PHP preg_match()。为什么第二种方法不起作用?是否可能回溯引用一个非捕获组?
U
修饰符,所以.+
是贪婪的,这意味着如果有多个标签,它将继续匹配。 - hwnd
/.+\7/
怎么可能工作呢?在你的第二个例子中,\1
将匹配(.+)
的内容. - mario