【发布时间】:2014-07-13 04:07:13
【问题描述】:
我想提取 img src 并使用 preg_match_all 我有这个:
$tag = '<img src="path/to/image.png" />';
preg_match_all('/(width|height|src)=("[^"]*")/i',$tag, $img[$tag]);
返回:
Array
(
[<img src="path/to/image.png" />] => Array
(
[0] => Array
(
[0] => src="path/to/image.png"
)
[1] => Array
(
[0] => src
)
[2] => Array
(
[0] => "path/to/image.png"
)
)
)
无论标签中使用双引号还是单引号,我如何编写正则表达式以返回相似的结果?我会写:
$tag = "<img src='path/to/image.png' />";
preg_match_all('/(width|height|src)=(\'[^\']*\')/i',$tag, $img[$tag]);
这可行,但我对正则表达式不够熟悉,无法编写一个表达式来处理。我确实尝试过:
preg_match_all('/(width|height|src)=((\'[^\']*\')|("[^"]*"))/i',$tag, $img[$tag]);
但这似乎会在数组中返回我不想要的额外匹配项。
【问题讨论】:
-
是的,一个永恒的问题和永恒的答案。相当愉快的阅读