首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于匹配任何URL字符的正则表达式

用于匹配任何URL字符的正则表达式
EN

Stack Overflow用户
提问于 2019-06-04 04:47:13
回答 1查看 0关注 0票数 0

我已经达到了一个规范,称所描述的字段为:

任何URL char

我想通过REGEX在我身边验证它。

我搜索了一下,即使我发现这个包含我需要的每一条信息的大问题,我发现如果没有一个问题正好要求正则表达式那么太糟糕,所以我在这里。

匹配任何URL字符的正确正则表达式是什么?

编辑

我从规范中理解的内容中提取了以下正则表达式:

代码语言:javascript
复制
[\w\-.~:/?#\[\]@!$&'()*+,;=%]

那么,这个REGEX是正确和详尽的还是我错过了什么?

阅读规范后,我猜它只是“所有ASCII字符”。

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 14:17:24

请参阅角色部分

URI由一组有限的字符组成,这些字符由数字,字母和一些图形符号组成。这些字符的保留子集可用于界定URI内的语法组件,而其余字符(包括未保留集和未充当分隔符的保留字符)定义每个组件的标识数据。

虽然有迹象表明只支持数字,字母和一些符号,但您可能会在附录B中看到一个用于解析URI的建议正则表达式。使用正则表达式解析URI引用可能实际上匹配每个char:

以下行是用于将格式正确的URI引用分解为其组件的正则表达式。 ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9

您收集的[\w.~:/?#\[\]@!$&'()*+,;=%-]模式限制性太强,除非\w知道Unicode(URI可能包含任何Unicode字母),然后,它可能或多或少地为您工作。

如果您计划仅匹配ASCII URL,请使用^[\x00-\x7F]+$(任何1+ ASCII符号)或^[!-~]+$(仅可见ASCII)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档