改笔记用来记录,自己使用过,正则和解释:
js-正则表达式查询
1,与域名相关的:
(1)MAC地址:
生成MAC地址:
^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$
Apifox写法:
@regexp(/^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$/)
生成数据:
"MAC": "4b:0e:bc:BB:ab:a4",
(2)生成IP地址:
正则表达式:
(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$)
Apifox:
@regexp(/(^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$)/)
生成数据:
202.194.171.191
解释:
\d表示0~9的任何一个数字
{2}表示正好出现两次
[0-4]表示0~4的任何一个数字
| 的意思是或者
( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串
1\d{2}的意思就是100~199之间的任意一个数字
2[0-4]\d的意思是200~249之间的任意一个数字
25[0-5]的意思是250~255之间的任意一个数字
[1-9]\d的意思是10~99之间的任意一个数字
[1-9])的意思是1~9之间的任意一个数字
\.的意思是.点要转义(特殊字符类似,@都要加\转义)
参考地址:https://www.cnblogs.com/caozhenfei/articles/14926424.html
(3)生成端口号:
正则表达式:
([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$
Apifox:
@regexp(/([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/)
解释:
端口号情况有多少种,那么就是多少种“|”
1,第一个“|”前面的’‘[0-9]’,表示端口是个位数,所以是从0到9。
2,第二个“|”前面的"[1-9]\d{1,3}",表示端口号为二位数到四位数的情况,10~9999的情况。
[1-9]表示多位数是开头的数,取值范围是1到9。
\d{1,3}表示,
\d:表示数值是[0,9]匹配
{1,3}表示前面的字符匹配最少1次,最多4次,有点类似循环的意思,循环添加前面的字符
所以,\d{1,3}表示,随机产生字符0~999
所以,“[1-9]\d{1,3}”,表示在[1,9]中产生一个数作为开头,在后面拼接上,[0,999]的数字字符
3,第三个“|”前面的:“[1-5]\d{4}”,表示端口号是10000~59999的端口号情况。
[1,5]表示多位数是开头的数,取值范围是1到5。
\d{4}:产生字符"0000~99999"
所以,“[1-5]\d{4}”表示,表示在[1,5]中产生一个数作为开头,在后面拼接上,[0000,9999]的数字字符
4,第三个“|”后面的:“6[0-5]{2}[0-3][0-5]”,表示端口号为60000~65535的端口号情况
6[0-5]{2},表示生成字符串6开头,拼接[0-5]{2}随机产生[00,55]字符
[0-3]数值取值范围是:[0,3]字符
[0-5]产生字符[0,5]