欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

让URL只允许一些字符的正则表达式

程序员文章站 2022-05-19 09:20:58
譬如 限制只允许正则出现以下的 a-z 0-9 http:// 匹配连贯 https:// 匹配连贯 / 不可连续两个出现 & % ? 不可连续两个出现 = 等号 - 中划...
譬如 限制只允许正则出现以下的
a-z
0-9
http:// 匹配连贯
https:// 匹配连贯
/ 不可连续两个出现
&
%
? 不可连续两个出现
= 等号
- 中划线
_ 下划线
. 点 很重要

有如下正则符合

^((?:http|https)://)?((?![/?]{2,})[a-za-z0-9\-._%&=/?])+$

regexbuddy3 翻译工具

^((?:http|https)://)?((?![/?]{2,})[a-za-z0-9\-._%&=/?])+$
•断言在字符串的开头位置
•逆向引用1
◦重复0次到1次,尽可能多的匹配(贪婪)
◦用以下正则表达式匹配
■用以下正则表达式匹配(这一个正则表达式失败时用下一个正则表达式的替代)
■匹配字符“http”
■用以下正则表达式匹配(这一个正则表达式匹配失败,这一集合都不匹配)
■匹配字符“https”
◦匹配字符“://”
•逆向引用2
◦重复1次到无限次,尽可能多的匹配(贪婪)
◦注:你又逆向引用本身。匹配将以最后一个逆向引用做为引用。把重复的逆向引用迭代。
◦否定式向前查看
■匹配一个在下面的列表出现的字符“/?”
■between 2 and unlimited times, as many times as possible, giving back as needed (greedy)
◦匹配一个在下面的列表出现的字符
■一个字符 其范围是a到z之间
■一个字符 其范围是a到z之间
■一个字符 其范围是0到9之间
■字符 “-”
■一个字符 是“._%&=/?”其中的一个
•断言在字符串的末端位置