【发布时间】:2012-06-10 01:08:18
【问题描述】:
我正在尝试使用 preg_match 来抓取两个 HTML 标记之间的文本。
这是我的代码的简化版本:
$sPattern = "/<li class=\"sample\">(.*?)<\/li>/s";
$sText = "blah blah blah <li class=\"sample\">hello world!</li> blah blah blah";
preg_match($sPattern,$sText,$aMatch);
echo '<pre>'.print_r($aMatch).'</pre>';
但是,当我运行此代码时,我会返回完整的 HTML 字符串:
<li class=\"sample\">hello world!</li>
有人知道我需要对正则表达式进行哪些更改吗?
注意:我知道从 HTML 页面解析数据的其他方法。由于各种原因,DOMDocument 和 DOMXPath 不是一个选项——我坚持使用 RegEx。
【问题讨论】:
-
对结果执行
strip_tags():) -
Funny ;) 我希望我可以让正则表达式做它应该做的事情。
-
已回答,但obligatory mention.
-
Thanx.. 你的问题救了我的命:P