如何解决我如何才能按照以下方式匹配模式
| 我需要匹配模式<a class=\"item-link\" href=\"NEED TO GET THIS PART\">AND THIS PART</a>
我尝试了所有三种正则表达式模式,但似乎都没有帮助。
preg_match_all(\"/<a.*(?:[^class=\\\"item-link\\\"=]*)class=\\\"item-link\\\"(?:[^href=]*)href=(?:\'|\\\")?(.*)(?:\'|\\\")(?:[^>]*)>(.*)<\\/a>/\",$content,$tablecontent);
preg_match_all(\"|/<a (?:[^href=]*)href=(?:\'|\\\")?(.*)(?:\'|\\\")(?:[^>]*)>(.*)<\\/a>/|s\",$tablecontent);
preg_match_all(\"|/<a.+class=\\\"item-link\\\".+href=\\\"(.*)\\\"[^>]*>\\.+<\\/a[^>]*>/|m\",$tablecontent);
print_r($tablecontent);
解决方法
尝试这个:
preg_match(\'/<a class=\"item-link\" href=\"([^\"]+)\">([^<]+)<\\/a>/\',$content,$matches);
, 这是执行此操作的正确方法:
$html = \'<a class=\"item-link\" href=\"NEED TO GET THIS PART\">AND THIS PART</a>\';
$dom = new DOMDocument();
$dom->loadHTML($html);
$xp = new XPath($dom);
$results = $xp->query(\'//a[class=\"item-link\"]\');
foreach ($results as $link) {
$href = $link->getAttribute(\'href\');
$text = $link->nodeValue;
... do your stuff here ...
}
对单个链接的矫kill过正,但这是处理完整HTML页面时最简单的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。