我有一部分解析的HTML代码,例如:
<div class='news_item'><a href='/najnovije/2-597-novih-slucajeva-u-protekla-24-sata-u-bolnicama-ukupno-1-545-osoba/35'><span class='h3'>2.597 novih slučajeva u protekla 24 sata, u bolnicama ukupno 1.545 osoba</span></a>U protekla 24 sata zabilježeno je 2.597 novih slučajeva pa je broj trenutno oboljelih (aktivnih slučajeva) u Hrvatskoj danas 15.513. Među njima je 1.545 pacijenata na bolničkom liječenju, od toga je na respiratoru 178 pacijenata. U protekla 24 sata testirana je 9.681 osoba. <span class='date'>11.11.2020. 10:00</span></div>
我该如何搭配: /najnovije/2-597-novih-slucajeva-u-protekla-24-sata-u-bolnicama-ukupno-1-545-osoba/35
整页URL为https://www.koronavirus.hr/najnovije/34。
我尝试了: /<a \bhref\s*=\s*'[^']*najnovije\/.*\/[35]?<\/a>/gm
有了这个,我得到了23场比赛,但是无法以/ 35结束时锁定丢失的比赛:
/<a \bhref\s*=\s*'[^']*najnovije\/.*?<\/a>/gm
但是没有成功。
不要使用正则表达式来解析html,而是使用DOMDocument,这是实现此方法的方法(DEMO):
$domDocument = new DOMDocument();
$domDocument->loadXML($string);
$selector = new DOMXPath($domDocument);
foreach ($selector->query("//a[contains(@href, 'najnovije') and contains(@href, '35')]") as $node) {
var_dump($node->getAttribute('href'));
}
这使用xpath获取具有href
包含这些值的属性的锚链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句