【发布时间】:2011-10-28 03:14:59
【问题描述】:
我确信这是一个简单的问题,而且我已经在 SO 上搜索和搜索了很多内容 - 我似乎无法弄清楚这有什么问题。我在此页面上的其他区域使用了类似的表达式,这些表达式完全返回了我想要的内容。
但是,我无法让这个特殊的位返回我想要的,所以也许有人可以帮助我。
我有一个具有特定 ID“user-sub-commhome”的 div - 我想从该 div 中提取文本。文本被标签包围,但我可以轻松地使用 strip_tags 来消除这些标签。我正在使用正则表达式来尝试提取数据。
这是我的代码:
$intro = "<div id="user-sub-summary">Summary</div>
<div id="user-sub-commhome"><em>Commercial</em></div>
<div id="whatever">whatever</div>";
$regex = '#\<div id="user-sub-commhome"\>(.+?)\<\/div\>#s';
preg_match($regex, $intro, $matches);
$match = $matches[0];
echo $match;
我尝试过改变事情但没有成功,似乎没有什么可以回应任何事情。所以我希望那些对正则表达式更有经验的人可以提供帮助。
【问题讨论】:
-
不确定这是否只是示例代码,但您的 $intro 变量不正确,因为它没有被正确转义。
-
我建议您尝试使用 html 解析器而不是正则表达式来完成此任务。见stackoverflow.com/q/1732348/159388。
-
是的,这只是示例代码。 $intro 实际上是一大块 html - 我只是举个例子,这样人们就可以更清楚地看到我在说什么。
-
您的模式在 HTML 中运行良好,没有考虑 Devator 注意到的 PHP 语法错误。转义双引号。