php - 如何通过正则表达式收集 HTML 链接中的文本?
问题描述
我有一个带有链接的字符串(作为a
无序列表(<li>
)中的元素,在 HTML 中)。如何使用正确的正则表达式来解析它?
我需要得到这个值的数组:
[
"Керамическая плитка",
"Напольные покрытия"
]
基本 HTML(示例):
<li><a href="/plitka/">Керамическая плитка</a></li>
<li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li>
<li><a href="/oboi/">Обои</a></li>
<li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li>
<li><a href="/santehnika/">Сантехника</a></li>
非常感谢。非常感谢您的帮助!
解决方案
解析器是您应该使用的工具,而不是正则表达式。像这样的东西:
<?php
$links = '<li><a href="/plitka/">Керамическая плитка</a></li>
<li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li>
<li><a href="/oboi/">Обои</a></li>
<li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li>
<li><a href="/santehnika/">Сантехника</a></li>';
$dom = new domdocument();
$dom->loadhtml('<?xml encoding="utf-8" ?>' . $links);
$links = $dom->getelementsbytagname('a');
foreach($links as $link) {
echo $link->nodeValue . PHP_EOL;
}
可以检索a
的节点值。如果路径更具体使用xpath
。
推荐阅读
- typescript - 如何在带有 Typescript 的 VueJs 手表中使用 Lodash debounce
- python - 如何将对象从主模块传递到另一个模块
- python - Brightway2 测试:拆除临时测试项目(夹具)
- javascript - 使用谷歌工作表脚本移动过滤值(复制和粘贴值),同时忽略列标题/标题
- angularjs - zingchart中的Y轴不一致
- json - JSON 到 Swift 5 对象使用 Codable
- java - 无法使用 JAX-RS 上传文件
- python - 网页抓取注册重置网站
- r - 如何根据由第一个子字符串组成的第二个字符向量对字符向量进行排序?
- c# - 上传文件 Selenium UI 测试不适用于 Dynamics 365 门户