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


Match word in PHP regex to not include

我想用preg_match获取<FONT COLOR="#0000ff">(insert some text here)<'/FONT>。类似的行是重复的,相互接触,所以如果我尝试像<FONT COLOR="#0000ff">(?<NAME>+)<'/FONT>这样的通用的东西,它会将它们作为一个单元格获取。所以我加入了[^<],让它在第一次停止的时间比它遇到的要少,从而防止它包含 HTML,因此成为一个单元格......

但是,我正在获取的文本有时会包含我想要的 HTML。有没有办法将[^]</F一起使用?我试图对前景进行负面展望的尝试没有奏效,因为它会说"是的,最后肯定有一个结束字体标签。最好不要归还任何东西。

如果我理解正确,你需要一个正则表达式来执行非贪婪匹配。例如,

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

我们的正则表达式是:/<x>(.*)<'/x>/

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

新正则表达式:/<x>(.*?)<'/x>/

它应该返回所有三个带有preg_match_all()标签