Regex表达式排除具有怪异URL的链接

问题描述 投票:-1回答:1

我有这个正则表达式(Java / JavaScript)

/(http|ftp|https):\/\/([\w+?\.\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\-\\=\\+\\\\\/\\?\\.\\:\\;\\'\\,]*\.(?:jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG|bmp|BMP|tiff|TIFF))?/

但是似乎这样的URL出现了问题:

https://cdn.vox-cdn.com/thumbor/C07imD1SHmAnbObkg-nJ92N6sD8=/0x0:4799x3199/920x613/filters:focal(2017x1217:2783x1983):format(webp)/cdn.vox-cdn.com/uploads/chorus_image/image/62871037/seattle.0.jpg

您认为我的表达中缺少什么?我想接受有效的图片网址。

javascript java regex
1个回答
1
投票

您的表达式在我使用(regex101.com)测试的验证器中对我有用,但是,它匹配为3个单独的捕获组。要将其全部捕获为单个匹配项,只需将整个语句包装在一组括号中即可。

注意:要清楚,有更简单的方法来执行此操作,但是要回答OP提出的特定问题,这将使它们的语句与提供的链接相匹配。

((http|ftp|https):\/\/([\w+?\.\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\-\\=\\+\\\\\/\\?\\.\\:\\;\\'\\,]*\.(?:jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG|bmp|BMP|tiff|TIFF))?)
© www.soinside.com 2019 - 2024. All rights reserved.