【发布时间】:2014-04-22 14:01:40
【问题描述】:
我需要一个正则表达式来匹配 p a、br 等标签之间的文本: Albert Einstein,普林斯顿大学部门主管 普林斯顿执行委员会成员
我有一个 (Preg_match_all) 的模式
$pattern="/<\s*a[^>]++>(.*?)<\s*\/\s*a\s*>/";
但它只给了我hrefs中的文本,
有什么提示吗?谢谢 // 这里是示例源
<p>
<a href="file.pdf" target="_blank"><b>Albert Einstein</b></a><br>
Division Head, Princeton<br>
Member of the Executive Committee of Princeton<br>
</p>
【问题讨论】:
-
尝试使用 HTML 解析器。见this answer on a related question
-
使用 dom 解析器,在你的 php 上很容易
-
使用 DOM 解析器加载 HTML,初始化 XPath 对象,然后执行
foreach ($xpath->query('//text()') as $node) { echo $node->nodeValue.PHP_EOL; }
标签: php regex preg-match-all