一、了解图片路径格式
- 完整URL:如
http://example.com/images/image1.jpg
- 相对路径:如
/images/image1.jpg
- 基于根目录的相对路径:如
/wwwroot/images/image1.jpg
二、编写正则表达式
<?php
$text = '以下是包含图片路径的文本:
<a href="http://example.com/images/image1.jpg">图片1</a>
<img src="/images/image2.jpg" alt="图片2">
<img src="/wwwroot/images/image3.jpg" alt="图片3">';
$pattern = '/<img\s+[^>]*src="([^"]+)"[^>]*>/i';
$matches = [];
preg_match_all($pattern, $text, $matches);
foreach ($matches[1] as $match) {
echo $match . "\n";
}
?>
解释:
<img\s+[^>]*src="([^"]+)"[^>]*>
:这是一个用于匹配图片标签的正则表达式。<img\s+
:匹配开始标签<img
,并允许标签名后有空格。[^>]*
:匹配标签名后面的任意字符,直到遇到第一个>
。src="([^"]+)"
:匹配src
属性,并捕获双引号之间的内容,即图片路径。[^>]*>
:匹配属性后面的任意字符,直到遇到第一个>
。
i
:使正则表达式对大小写不敏感。
三、匹配其他图片路径格式
$pattern_a = '/<a\s+[^>]*href="([^"]+)"[^>]*>/i';
preg_match_all($pattern_a, $text, $matches_a);
foreach ($matches_a[1] as $match) {
echo $match . "\n";
}