Regex在两者之间拾取内容


Regex that picks up content in between

在一个大型HTML文档中,我有多行如下所示。"TEST"值可能不同。我想拿起TEST或其他什么东西。

<TD width=300 valign=top><FONT COLOR=800000 size=3>TEST</FONT><BR>

我有一个正则表达式:

$regex = "/<FONT COLOR=800000 size=3>['w.&,'s]*<'/FONT>/";

它收集了所有看起来像我上面发布的行。我怎么能,而不是整条线,只拿起测试。

$regex = "/<FONT COLOR=800000 size=3>(['w.&,'s]*)<'/FONT>/";
preg_match($regex, $string, $matches);

您将在$matches数组中拥有所有匹配项,$matches[1]应该是您的"测试"。

首先,必须链接。

如果你真的想用正则表达式表达它,在['w.&, ]*]周围放上括号,并将内容捕获到一个组中,然后读取组而不是整个匹配编辑我看到@boobiq向你展示了如何做到这一点,所以我不会这么做。:p

您可能想要使用组,因此将正则表达式更改为:

"/<FONT COLOR=800000 size=3>(['w.&, ]*)<'/FONT>/"

圆括号表示组。

理想情况下,您永远不应该使用regex解析HTML(为什么不呢?)。。。您应该使用像PHP Simple HTML DOM Parser这样的框架。