带有空格的正则表达式匹配的图像网址(regex matching image url with sp

2019-07-29 11:01发布

我需要匹配图像的URL是这样的:

http://site.com/site.com/files/images/img (5).jpg

像这样的东西正常工作:

.replace(/(http:\/\/([ \S]+\.(jpg|png|gif)))/ig, "<div style=\"background: url($1)\"></div>")

除非我有这样的事情:

http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg

如何只匹配的形象呢?

谢谢!

编辑:我是使用JavaScript。

Answer 1:

正确的网址不能有空格他们,他们应该有%20或加'+'来代替。 如果您已经将它们与那些替代形式写那么你的匹配会容易得多。



Answer 2:

假设图像将始终处于“图像”目录,尝试:

http://.*/images/(.*?).(jpe?g|gif|png)

如果您不能承担images目录:

http://.*/(.*?).(jpe?g|gif|png)

第1组和2应该有你想要的东西(文件名和扩展名)。

我测试了正则表达式在这里 ,并在这里 ,它似乎你想要做什么。



Answer 3:

为什么不:

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


Answer 4:

运用

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

应该做的伎俩,如果你想要的是图像的名称。 第一组是文件名,第二组是文件扩展名。



Answer 5:

你可以假设网址将被空格分隔或分隔的回报?

如,你可以假设这个输入?

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

如果你将有你的分隔符为您的字符串返回的部分,事情变得棘手。 什么样卷的你在说什么吗? 你可以半手工做的一切,还是过程都实现自动化?



Answer 6:

这将是一个方法:

^((\w+):)?\/\/((\w|\.)+(:\d+)?)[^:]+\.(jpe?g|gif|png)$

Mathing冒号。 (:)在这种情况下,它仅接受的协议和端口(可选)。

这不匹配:

http://site.com/site.com/files/audio/audiofile.mp3 http://site.com/site.com/files/images/img (5).jpg

这将匹配(在第二HTTP结肠://删除)

“/audiofile.mp3 HTTP /”将计为一个文件夹“/音频/”

http://site.com/site.com/files/audio/audiofile.mp3 http//site.com/site.com/files/images/img (5).jpg

这不是愚弄证明。 但是也有一些未在文件名中不允许其他字符(* |“<>)



文章来源: regex matching image url with spaces