preg_match_all在同一行上有多个结果

时间:2014-04-21 22:00:10

标签: php regex preg-match-all

我尝试从中提取数据的结果采用以下格式

<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多个结果,而且我无法使用该方法获取单个匹配,所以我想知道我做错了什么。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

使用懒惰匹配器。设置匹配也应该有帮助

<?php

$string = '<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>';

$pattern = '#<a href="anime/(?P<location>.*?)">(?P<description>.*?)</a>#';

$matches = null;
preg_match_all($pattern, $string, $matches, PREG_SET_ORDER);
print_r($matches);

https://eval.in/139332