如何使用preg_match匹配html标签之间的文本

时间:2013-10-01 10:56:55

标签: php preg-match

我需要匹配

<TD WIDTH=30%><B>Joining Date</B></TD></TR>STRINGTOBEMATCHED</TABLE>

使用preg_match ...尝试使用preg_quote但是,字符串有问题,preg_match认为B是某种类型的oprator ..

1 个答案:

答案 0 :(得分:2)

我建议您阅读有关HTML解析的this thread。如今,您可以使用大量XML / HTML解析器。

由于HTML代码编写得很糟糕(属性值没有引号,文本出现在table内但在tr之外),因此很难解析HTML代码。

尽管如此,要回答您的问题,可以使用此代码,因为您需要匹配的字符串位于</tr></table>标记之间:

$var = "<TD WIDTH=30%><B>Joining Date</B></TD></TR>STRINGTOBEMATCHED</TABLE>";
$regex = "%</TR>(.*?)</TABLE>%i";
$matches = null;
preg_match($regex, $var, $matches);

$result = $matches[1];

但我强烈建议您使用上述主题中表示的库。