【发布时间】:2013-06-04 03:16:24
【问题描述】:
在 HTML 页面中是这样的一行:
<p><strong>State:</strong> <a href="/state/show/Ohio">Ohio</a></p>
我正在寻找的是一个正则表达式,它获取 <strong>State:</strong> 和 EOL 之间的内容。
我已经尝试过了,但它不起作用,因为它忽略了</a></p>-"end"
preg_match('/<strong>State:(.*)<\/a><\/p>/',$html,$format);
【问题讨论】:
-
您能否更新您的帖子,提供您对该案例所期望的确切输出?你想要State: Ohio吗?如果是这样...只需将 (.*) 替换为 .*
-
如果你想匹配到行尾,你可以使用
<strong>State:(.*) -
任何不考虑 html 解析器的理由。
-
不要使用正则表达式解析 HTML。您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。有关如何使用已经编写、测试和调试的 PHP 模块正确解析 HTML 的示例,请参阅 htmlparsing.com/php。
标签: php regex html-parsing preg-match