我想用preg_match获取<FONT COLOR="#0000ff">(insert some text here)<\/FONT>
。类似于它的行重复并相互接触,所以如果我尝试像<FONT COLOR="#0000ff">(?<NAME>+)<\/FONT>
这样的泛型,它将把它们全部作为一个单元格获取。所以我趁[^<]
使它停在第一个比它遇到的更少的时候,从而防止它包含HTML,因此成为一个单元...
但是,我提取的文本有时包含我想要的HTML。有没有办法将[^]
与</F
一起使用?我对前瞻性的尝试不起作用,因为它是“是的,最后肯定有一个结束字体标记。最好不要返回任何东西。”
答案 0 :(得分:2)
如果我理解正确,您需要一个RegEx来执行非贪婪的匹配。例如,
如果查询字符串为:<x> abc </x> <x> def </x> <x> hig </x>
我们的RegEx是:/<x>(.*)<\/x>/
然后执行贪婪的匹配,返回的是整个查询字符串,因为它满足RegEx。为了避免它,我们使用非贪婪的匹配。
新RegEx:/<x>(.*?)<\/x>/
它应该使用preg_match_all()