如何修改URL匹配正则表达式以支持https://www.google.*/这类模式?
正则表达式修改方案
原正则表达式:
^(\*|http|https|file|ftp|ws|wss|data):\/\/(\*|(?:\*\.)?(?:[^*]+))?\/(.*)$
修改后的正则(支持https://www.google.*/这类模式)
^(\*|http|https|file|ftp|ws|wss|data):\/\/(\*|(?:\*\.)?(?:[^/*]*\*?[^/*]*))?\/(.*)$
修改说明
原正则的域名匹配段(?:[^*]+)限制了域名部分只能包含非*的字符,仅支持*.xxx.com这类前缀通配的模式。将其替换为(?:[^/*]*\*?[^/*]*)后,允许域名段中出现单个*(比如www.google.*这种末尾带通配符的形式),同时保留了不允许出现/的规则,避免和路径部分混淆。
如果需要支持域名中包含多个*(比如www.*.com.*),可以使用以下版本:
^(\*|http|https|file|ftp|ws|wss|data):\/\/(\*|(?:\*\.)?(?:[^/*]*(?:\*[^/*]*)*))?\/(.*)$
内容的提问来源于stack exchange,提问作者Owen Young
相关产品推荐
相关产品推荐

