简单的preg_match问题

时间:2011-03-29 12:15:56

标签: php regex preg-match

以下正则表达式获取所有图像src,但在开始时显示src=",在路径末端显示"

如何删除它并仅显示路径?

preg_match('/src="(.*?)"/i' , $content1 , $matches);

3 个答案:

答案 0 :(得分:4)

你几乎做得对。正则表达式是正确的,但是:

echo $matches[1];

这将输出第一个捕获的子模式。第一个匹配($matches[0])将始终包含匹配的完整文本,包括src=""位。

答案 1 :(得分:3)

<强>代码:

$re = '/(?<=src=")(?:.*?)(?=")/ui';
$txt = '<img src="http://www.gravatar.com/avatar/6f5de9?s=32&amp;d=identicon&amp;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
)

答案 2 :(得分:2)

$ matches将包含第一个元素中的整个匹配模式,后跟每个子模式的元素。在这种情况下,你想要$ matches [1]来获得你想要的东西。