问题描述
我有一个用于验证图像网址的正则表达式,但是某些图像例如使用@
:
https://test.com/[email protected]。
如何扩展此正则表达式以在图像链接内部也接受@
字符?
当前的正则表达式看起来像这样
(http(s?):)([/|.|\w|\s|-])*\.(?:jpg|jpeg|gif|png)
解决方法
如果它只能是图像名称的一部分,则可以添加一个正斜杠,然后匹配允许的字符,包括扩展名前最后一个点之前的@。
您可以对单个字符使用字符类,而不是使用分组结构来匹配列出的字符之一。
如果不需要捕获组,则可以省略它们以仅获取匹配项。
https?:\/\/[/.\w\s-]+\/[\w@-]+\.(?:jpe?g|gif|png)