一、了解图片路径格式

  • 完整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";
}

四、总结