preg_match 匹配 html 标签内文本的最简单方法
可能的重复:
使用 PHP 解析 HTML 的最佳方法
例如我有一个 html 代码like :
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="rowData">
<tr align="center" class="fnt-vrdana-mavi" >
<td style="font-size:11px" colspan=3><b>Text text text</b>:3</td>
</tr>
<tr class="header" align="center">
<td height="18" colspan="3">Text text text</td>
</tr>
<tr align="center" class="fnt-vrdana" bgcolor="#eff3f4" height="18">
<td width="32%" height="17"><b>1</b></td>
<td width="34%"><b>0</b></td>
<td width="34%"><b>2</b></td>
</tr>
<tr align="center" class="fnt-vrdana-mavi">
<td height="17">2.90</td>
<td>3.20</td>
<td>1.85</td>
</tr>
</table>
哪个是匹配 标签内所有数据的最佳正则表达式?
Possible Duplicate:
Best methods to parse HTML with PHP
for example i have a html code like :
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="rowData">
<tr align="center" class="fnt-vrdana-mavi" >
<td style="font-size:11px" colspan=3><b>Text text text</b>:3</td>
</tr>
<tr class="header" align="center">
<td height="18" colspan="3">Text text text</td>
</tr>
<tr align="center" class="fnt-vrdana" bgcolor="#eff3f4" height="18">
<td width="32%" height="17"><b>1</b></td>
<td width="34%"><b>0</b></td>
<td width="34%"><b>2</b></td>
</tr>
<tr align="center" class="fnt-vrdana-mavi">
<td height="17">2.90</td>
<td>3.20</td>
<td>1.85</td>
</tr>
</table>
Which is best regular expression to match all data from inside <td>
tags?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我通常建议,如果您需要在 HTML 文档中实际表达您要查找的内容,请使用
xpath
表达式,因为它可以为您提供实际值,而正则表达式无法进一步解析 HTML/XML,xpath
表达式更加细粒度。查看返回文本值的输出,例如内部没有任何其他标签:代码:
I normally suggest if you need to actually express what you're looking for in a HTML document to use an
xpath
expression for that because it can give you the actual value whereas regex'es are not able to further parse the HTML/XML, andxpath
expressions are much more fine-grained. See the output which returns the text-value for example w/o any further tags inside:Code:
/(.*?)<\/td>/
将获取和
< 之间的所有数据;/td>
。从
标签内部获取数据将是
/]*)>/
或//
/<td.*?>(.*?)<\/td>/
would get all data between the<td>
and</td>
.Getting the data from inside a
<td>
tag would be/<td([^>]*)>/
or/<td(.*?)>/