正则表达式/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!@#$]{6,16}$/

/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!@#$]{6,16}$/

表示长度为6-16位包含数字+字母,可以包含或不包含特殊符号的密码

.表示匹配除"\n"(换行符)和"\r"(回车符)之外的任何单个字符。

*表示匹配前面的子表达式任意次。例如,zo*能匹配"z",也能匹配“zo”以及“zoo”。*等价于{0,}。

()表示将(和)之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正在表达式中最多可以保存9个),它们可以用\1和\9的符号来引用。

(?=pattern)表示费获取匹配,正向肯定预查,在任何匹配pattern的字符串开始匹配查找字符串,该匹配不需要获取以后使用。例如,“window(?=95|98|XT|2000)”能匹配“window2000”中的“window”,但不能匹配“window3.1”中的“window”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是包含预查的字符之后开始。

\W匹配任何非单词字符,等价于"[^A-Za-z0-9]"

第一个括号里面标识必须匹配到数字\d

第二个括号表示必须匹配到字母

第三个中括号表示字符集合,匹配所包含的任意一个字符。例如,‘[A-Za-z\d!@#$]’可以匹配“abc123!@#”中的"abc123@#"

三个条件由()括号取和集同时成立

代码、语法 说明
\W 匹配任意不是字母、数字、下划线、汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配aeiou这几个字母以外的任意字符
* 重复0次或更多次
+ 重复1次或更多次
重复0次或1次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
(exp) 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
(?=exp) 匹配exp前面的位置
(?!exp) 匹配exp后面的位置
(?!exp) 匹配后面不是exp的位置
(?<!exp) 匹配前面不是exp的位置
(?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
*? 重复任意次,但尽可能少重复
+? 重复1次货更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
\a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?<x>-<y>exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no

 

猜你喜欢

转载自blog.csdn.net/maggie_live/article/details/85045868