返回
正则表达式教程:匹配图片链接地址
正则表达式
2024-02-28 15:52:00
一、正则解释
正则表达式:
/^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"]