正则表达式在 php 中捕获 <img> src [重复]
Posted
技术标签:
【中文标题】正则表达式在 php 中捕获 <img> src [重复]【英文标题】:Regex to capture <img> src in php [duplicate] 【发布时间】: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]);
但这似乎会在数组中返回我不想要的额外匹配项。
【问题讨论】:
***.com/questions/1732348/… 是的,一个永恒的问题和永恒的答案。相当愉快的阅读 【参考方案1】:你可以用这个:
(width|height|src)=("[^"]*"|'[^']*')
我基本上使用了交替来匹配“fds”或“fds”。
【讨论】:
谢谢!我知道有人问过这个问题的各种排列,但我的问题不是提取 img,而是像你演示的那样,它是关于交替的正则表达式语法。这正是我想要的,但仍在学习正则表达式。以上是关于正则表达式在 php 中捕获 <img> src [重复]的主要内容,如果未能解决你的问题,请参考以下文章