以下正则表达式获取所有图像 src,但在路径开头显示
src="
,在路径末尾显示 "
。
如何删除它并仅显示路径?
preg_match('/src="(.*?)"/i' , $content1 , $matches);
你几乎做对了。正则表达式是正确的,但是:
echo $matches[1];
这将输出第一个捕获的子模式。第一个匹配 (
$matches[0]
) 将始终包含匹配的全文,即包括 src=""
位。
代码:
$re = '/(?<=src=")(?:.*?)(?=")/ui';
$txt = '<img src="http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG" height="32" width="32" alt="">';
$nMatches = preg_match($re, $txt, $aMatches);
输出:
Array
(
[0] => http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG
)
$matches 将在第一个元素中包含整个匹配模式,后面是每个子模式的元素。在这种情况下,您需要 $matches[1] 来获得您想要的东西。