返回

正则表达式教程:匹配图片链接地址

正则表达式

一、正则解释

正则表达式:

/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i

正则解释:

  • ^: 行首锚点,确保匹配从行首开始。
  • https?: 匹配 "http" 或 "https" 协议。
  • ://: 匹配协议与主机名之间的 "://"。
  • (.+/): 匹配由一个或多个字符和一个正斜杠组成的子文件夹路径。此部分可重复多次,表示路径可能包含多个子文件夹。
  • +: 确保子文件夹路径出现至少一次。
  • .+: 匹配文件名中的任何字符序列。
  • (.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)): 匹配文件扩展名,括号中的部分表示图片格式,可根据需要进行增删。
  • $: 行尾锚点,确保匹配到行尾。
  • i: 不区分大小写。

二、使用场景

该正则表达式可用于从文本中提取图片链接地址,用于各种场景,例如:

  • 从网页中抓取图片
  • 验证用户提交的图片 URL
  • 提取图像库中的图片链接

三、代码示例

JavaScript

const regex = /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i;
const text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png";
const matches = text.match(regex);
console.log(matches); // 输出:["https://www.abc.com/logo.png", "http://www.abc.com/logo.png"]

Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ImageLinkMatcher {

    public static void main(String[] args) {
        String regex = "^https?:\\/\\/(.+\\/)+.+\\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ImageLinkMatcher {

    public static void main(String[] args) {
        String regex = "^https?:\\/\\/(.+\\/)+.+\\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)$";
        String text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}
quot;
; String text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(text); while (matcher.find()) { System.out.println(matcher.group()); } } }

PHP

<?php
$regex = "/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i";
$text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png";
preg_match_all($regex, $text, $matches);
print_r($matches[0]); // 输出:["https://www.abc.com/logo.png", "http://www.abc.com/logo.png"]
?>

Python

import re

regex = r"^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))
import re

regex = r"^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$"
text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png"
matches = re.findall(regex, text)
print(matches)  # 输出:["https://www.abc.com/logo.png", "http://www.abc.com/logo.png"]
quot;
text = "https://www.abc.com/logo.png,http://www.abc.com/logo.png" matches = re.findall(regex, text) print(matches) # 输出:["https://www.abc.com/logo.png", "http://www.abc.com/logo.png"]