【发布时间】:2014-04-21 22:00:10
【问题描述】:
我尝试从中提取数据的结果采用以下格式
<a href="anime/hackroots">.hack//Roots</a> <img src="images/video.png" border=0 width=16 height=16 alt="Flash video available" title="Flash video available"> (8) <br><a href="anime/hacksign">.hack//SIGN</a>
我正在尝试使用以下代码提取每个动漫的位置和名称:
preg_match_all('#<a href="anime/(.*)">(.*?)</a>#', $content, $match);
但是,结果跨越多行,每行有 50 多个结果,我无法使用该方法获取单个匹配项,所以想知道我做错了什么。
任何帮助将不胜感激!
【问题讨论】:
-
你做错的是使用正则表达式进行 HTML 解析。
-
问了一千次,只是你写了正则表达式来这样做。了解"Greediness" in PCRE。还要注意点“
.”匹配哪些字符(尤其是空格)。 -
#<a href="anime/(.*)">(.*?)</a>#s;smodifier. -
另外,将您的第一个
(.*)更改为(.*?)以使其成为 lazy。或者使用更具体的字符类说“除了"”(([^"]*))。
标签: php regex preg-match-all