Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在一行中获取所有事件_Php_Regex_Preg Match All - Fatal编程技术网

PHP在一行中获取所有事件

PHP在一行中获取所有事件,php,regex,preg-match-all,Php,Regex,Preg Match All,这是对任何正则表达式结果的限制吗? 我需要的是在一行中获取所有匹配项,但是preg\u match\u all返回表达式的第一个和结尾。 有没有其他方法来获取所有在线事件 $re = "/(media|images)(.*)(.jpg|.jpeg|.png)/"; $str = 'images/test/test-1.png" alt="test-1" /></a><a href="/test-2" title="test 2"><img src="/imag

这是对任何正则表达式结果的限制吗? 我需要的是在一行中获取所有匹配项,但是
preg\u match\u all
返回表达式的第一个和结尾。 有没有其他方法来获取所有在线事件

$re = "/(media|images)(.*)(.jpg|.jpeg|.png)/";
$str = 'images/test/test-1.png" alt="test-1" /></a><a href="/test-2" title="test 2"><img src="/images/test/test2.png" alt="test2" /></a>               <a href="/test-3" title="Cruises in Croatia"><img src="/images/EET/test-3.png';
preg_match_all($re,$str,$matches );
print_r($matches);
$re=“/(媒体|图像)(.*)(.jpg |.jpeg |.png)/”;
$str='images/test/test-1.png“alt=”test-1“/>数组
(
[0]=>.png
)
)

您需要在量词
(.*)
上添加一个
,使正则表达式不贪婪

正则表达式应该是这样的:

(media|images)(.*?)(.jpg|.jpeg|.png)
示例代码:

$re=“/(媒体|图像)(.*)(.jpg |.jpeg |.png)/”;

$str='images/test/test-1.png“alt=“test-1”/>

你所说的
在一行中获取所有出现的内容是什么意思?您得到的是预期的行为,它将为您提供一个包含所有匹配项的数组,这里的匹配项意味着每个捕获组的每个匹配项您是否尝试获取所有图像路径?哇,非常感谢,这正是我需要的,很遗憾我无法投票,我的声誉尚不具备:(
(media|images)(.*?)(.jpg|.jpeg|.png)