发布于 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)。
https://stackoverflow.com/questions/-100009073
复制相似问题