|
|
1
76
(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*\.(?:jpg|gif|png))(?:\?([^#]*))?(?:#(.*))?
这是来自的官方URI解析regexp的(稍加修改)版本
RFC 2396
. 它允许
更传统的regexp可能如下所示。 ^https?://(?:[a-z0-9\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:jpg|gif|png)$
|-------- domain -----------|--- path ---|-- extension ---|
看我的
other comment
,虽然它没有回答这个问题那么完整,但我觉得在这种情况下它可能更有用。不过,我要把这个留给你
|
|
|
2
38
事实上 你为什么要检查网址?这不能保证你得到的是一个形象,也不能保证你拒绝的东西 不是 图像。尝试对其执行HEAD请求,并查看其内容类型 是 |
|
|
3
17
通常,最好使用内置库或框架函数验证URL,而不是使用自己的正则表达式来验证—请参阅 What is the best regular expression to check if a string is a valid URL 详情请参阅。 但是,如果您热衷于这样做,请查看以下问题: Getting parts of a URL (Regex)
|
|
|
4
14
这将从该字符串中提取所有图像:
在此处测试您的正则表达式: https://regex101.com/r/l2Zt7S/1 |
|
5
4
对照此处的URL检查此正则表达式: http://regexr.com/3g1v7 |
|
|
6
2
#!/usr/bin/perl use LWP::UserAgent; my $ua = LWP::UserAgent->new; @ARGV = qw(http://www.example.com/logo.png); my $response = $ua->head( $ARGV[0] ); my( $class, $type ) = split m|/|, lc $response->content_type; print "It's an image!\n" if $class eq 'image'; 如果需要检查URL,请使用可靠的库,而不是自己尝试处理所有奇怪的情况: use URI; my $uri = URI->new( $ARGV[0] ); my $last = ( $uri->path_segments )[-1]; my( $extension ) = $last =~ m/\.([^.]+)$/g; print "My extension is $extension\n"; 祝你好运,:) |
|
|
7
2
真正地 要确定,获取给定URL的前一两个KB应该足以确定您需要了解的有关图像的所有信息。 这是 an example of how you can get that information an example of it being put to use, as a Django form field 它允许您根据图像的URL轻松验证图像的存在性、文件大小、尺寸和格式。 |
|
|
9
0
增加 Dan's 如果存在IP地址而不是域。
但是,对于IPv4和IPv6来说,这是可以改进的,以验证子网范围。 |
|
|
10
0
|
|
|
11
0
例子-
|
|
|
12
0
参考:参见官方go-lang图像库文档的DecodeConfig部分 here
这里的格式是一个字符串,表示文件格式,如jpg、png等 |
|
|
13
0
只是提供了一个更好的解决方案。您只需验证uri并检查格式即可:
|
|
|
14
0
|
|
|
DotFX · RegEx捕获关键字前但括号后的所有内容 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |
|
|
iato · 确保正则表达式不从命名材料中的数字中提取 1 年前 |
|
|
vr8ce · 非成对标记中特定字符的正则表达式 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |