匹配PHP正则表达式中的单词不包含

时间:2012-08-12 03:53:43

标签: php preg-match-all

我想用preg_match获取<FONT COLOR="#0000ff">(insert some text here)<\/FONT>。类似于它的行重复并相互接触,所以如果我尝试像<FONT COLOR="#0000ff">(?<NAME>+)<\/FONT>这样的泛型,它将把它们全部作为一个单元格获取。所以我趁[^<]使它停在第一个比它遇到的更少的时候,从而防止它包含HTML,因此成为一个单元...

但是,我提取的文本有时包含我想要的HTML。有没有办法将[^]</F一起使用?我对前瞻性的尝试不起作用,因为它是“是的,最后肯定有一个结束字体标记。最好不要返回任何东西。”

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要一个RegEx来执行非贪婪的匹配。例如,

如果查询字符串为:<x> abc </x> <x> def </x> <x> hig </x>

我们的RegEx是:/<x>(.*)<\/x>/

然后执行贪婪的匹配,返回的是整个查询字符串,因为它满足RegEx。为了避免它,我们使用非贪婪的匹配。

新RegEx:/<x>(.*?)<\/x>/

它应该使用preg_match_all()

返回所有三个标记