Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将图像url与空格匹配的正则表达式_Javascript_Regex_Url - Fatal编程技术网

Javascript 将图像url与空格匹配的正则表达式

Javascript 将图像url与空格匹配的正则表达式,javascript,regex,url,Javascript,Regex,Url,我需要匹配如下图像url: http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/images/img (5) jpg先生 类似这样的方法很好: .replace(/(http:\/\/([

我需要匹配如下图像url:

http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/images/img (5) jpg先生 类似这样的方法很好:

.replace(/(http:\/\/([ \S]+\.(jpg|png|gif)))/ig, "<div style=\"background: url($1)\"></div>")
.replace(/(http:\/\/([\S]+\(jpg | png | gif)))/ig,”)
除非我有这样的东西:

http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5) jpg先生 如何仅匹配图像

谢谢

编辑:我正在使用javascript。

为什么不:

/([^/]+\.(jpg|png|gif))$
为什么不:

/([^/]+\.(jpg|png|gif))$

假设图像始终位于“images”目录中,请尝试:

http://.*/images/(.*?).(jpe?g|gif|png)
如果无法假定图像目录:

http://.*/(.*?).(jpe?g|gif|png)
组1和组2应该有您想要的(文件名和扩展名)


我测试了正则表达式,它似乎可以满足您的需要。

假设图像始终位于“图像”目录中,请尝试:

http://.*/images/(.*?).(jpe?g|gif|png)
如果无法假定图像目录:

http://.*/(.*?).(jpe?g|gif|png)
组1和组2应该有您想要的(文件名和扩展名)


我测试了正则表达式,它似乎可以满足您的需要。

正确的URL中不应该有空格,而是应该有
%20
或一个加号
'+'
。如果您使用这些备选方案编写它们,那么您的匹配就会容易得多。

正确的URL中不应该有空格,而是应该有
%20
或一个加号
'+'
。如果您使用这些备选方案编写它们,那么您的匹配就会容易得多。

使用

http:\/\/.*\/(.*)\.(jpg|png|gif)
如果您只需要图像的名称,则应该执行此操作。第一组是文件名,第二组是文件扩展名。

使用

http:\/\/.*\/(.*)\.(jpg|png|gif)

如果您只需要图像的名称,则应该执行此操作。第一组是文件名,第二组是文件扩展名。

您可以假定URL是以空格分隔的,还是以返回分隔的

如中所示,您可以假设此输入吗

site.com/images/images/lol (5).jpg
site.com/images/other/radio.mp3
site.com/images/images/copter (3).jpg

如果要将分隔符作为字符串的一部分返回,那么事情会变得棘手。你说的是什么样的音量?您是否可以半手动执行此操作,或者必须自动执行此过程?

您是否可以假定URL将以空格分隔,或者以返回分隔

如中所示,您可以假设此输入吗

site.com/images/images/lol (5).jpg
site.com/images/other/radio.mp3
site.com/images/images/copter (3).jpg

如果要将分隔符作为字符串的一部分返回,那么事情会变得棘手。你说的是什么样的音量?您是否可以半手动操作,或者该过程必须自动化?

这将是一种方法:

^((\w+):)?\/\/((\w|\.)+(:\d+)?)[^:]+\.(jpe?g|gif|png)$
在冒号上匹配。(:) 在这种情况下,只接受协议和端口(可选)

这将不匹配:

http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg
这将匹配(第二个http://removed中的冒号)

/audiofile.mp3 http/”将作为“/audio/中的文件夹计算”


这不是万无一失的。文件名中不允许使用其他字符(*|“<>

这是一种方法:

^((\w+):)?\/\/((\w|\.)+(:\d+)?)[^:]+\.(jpe?g|gif|png)$
在冒号上匹配。(:) 在这种情况下,只接受协议和端口(可选)

这将不匹配:

http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg
这将匹配(第二个http://removed中的冒号)

/audiofile.mp3 http/”将作为“/audio/中的文件夹计算”



这不是傻瓜式的。文件名中还有其他字符是不允许的(*|“<>

很抱歉,但我不能让所有用户用空格编辑他们的文件以包含%20。@标记。。。您的用户不应重命名这些文件。。无论您使用什么方法从用户那里获取文件,都应该在文件进入时执行。可能有人想编写正则表达式来查找所有有空格的URL,以便用%20替换它们。告诉某人他们不应该有问题并不能解决问题。很抱歉,我不能让所有用户都用空格编辑他们的文件以包括%20。@mark。。。您的用户不应重命名这些文件。。无论您使用什么方法从用户那里获取文件,都应该在文件进入时执行。可能有人想编写正则表达式来查找所有有空格的URL,以便用%20替换它们。告诉某人他们不应该有问题并不能解决问题。谢谢,但我需要匹配整个url。你可能应该在上面提及,因为它让我们中的一些人感到困惑。谢谢,但我需要匹配整个url。你可能应该在上面提及,因为它让我们中的一些人感到困惑。谢谢,但我不能假设图片目录。图像可能来自任何地方(没什么大不了的。我建议你测试一下这个正则表达式(使用我发布的链接)。它会让你知道你会得到什么样的信息。谢谢,但这与我所拥有的非常相似。它匹配的是:(5)jpg的整行内容,而不仅仅是图像。是的,它匹配这行内容,但捕获的组会抓取图像(img(5)和jpg)。匹配行有什么问题?我正在尝试匹配图像的url。我已更新示例,以更清楚地显示我正在尝试执行的操作。谢谢,但我不能假设图像目录。图像可能来自任何地方。:(没什么大不了的。我建议您测试此正则表达式(使用我发布的链接)。它应该会让你知道你会得到什么样的信息。谢谢,但这与我所拥有的非常相似。它匹配的是:(5)jpg的整行,而不仅仅是图像。是的,它匹配的是这行,但捕获的组会抓取图像(img(5)和jpg)。匹配行有什么问题?我正在尝试匹配图像的url。我已经更新了我的示例,以更清楚地显示我正在尝试执行的操作。是的,文件扩展名之后总是会有一个空白。我知道在url本身中有一个空白是多么可怕。也许一个两步的过程可以让空白首先进入%20可能是一个好方法d主意。这就是我在想的。除非你的图片图片之间有一个明确的分隔符,比如\n,否则你无法区分site.com\images\img和(5)。jpgThanks,你有一个转换空格的好方法吗?我想我在我的