正则表达式

元字符:

元字符对应说明备注
.除换行符以外的其他字符
\w匹配字母数字下划线,等同于:[a-zA-Z0-9_]
\s匹配任意空白符
\d匹配数字,等同于[0-9]

\b匹配单词边界

匹配规则:

  1.  \w和\W之间的位置
  2. ^与\w之间的位置
  3. \w与$之间的位置

 

|或匹配,如 /x|y/ 正则可匹配x或y两个字符

^匹配行开头(字符串的开始)
$匹配行结尾(字符串的结束)

 

反义字符:

反义字符对应说明备注
[^x]匹配除“x”之外的所有字符,其中“x”可以为任意字符
[^xyz]同上,匹配除“x、y、z”之外的任意字符
\W匹配除了字母、数字、下划线之外的所有字符,等同于:[^\w]
\S匹配除空白符之外的任意字符,等同于:[^\s]
\B匹配不是单词边界的字符,等同于:[^\b]

匹配规则:

  1.  \w与\w之间的位置
  2.  \W与\W之间的位置
  3. ^与\W之间的位置
  4. \W与$之间的位置

 

\D匹配不是数字的所有字符,等同于:[^\d]

转义字符:

转义字符

对应说明

\xnn匹配十六进制数
\f匹配换页符,等同于:\x0c
\n匹配换行符,等同于:\x0a
\r匹配回车符,等同于:\x0d
\t匹配水平制表符,等同于:\x09
\v匹配垂直制表符,等同于:\x0b
\unnnn匹配Unicode字符,如:\u00A0

重复匹配:

匹配字符

对应说明

*重复出现零次或多次
+重复出现一次或多次
重复出现零次或一次
{n}重复出现n次
{n,}至少重复出现n次
{m,n}重复重现m到n次,其中,m<n

分组/捕获:

分组字符对应说明备注(图为全局匹配//g)
(exp)用小圆括号进行分组,如日期中年月日的分组:/(\d{4})-(\d{1,2})-(\d{1,2})/
每个分组将产生分组号,从第一个括号开始,可以使用\n的形式在正则中使用分组号,
如匹配成对出现的HTML标签,可以写成:/<(\w+)><\/\1>/
(?:exp)匹配exp正则,但不产生分组号

匹配exp,多个使用必须符合正则顺序才能匹配

 

exp1(?=exp2)前瞻断言,匹配exp1,但后面必须是exp2
如匹配姓zhang,并且名字为xianlie的人:/zhang(?=xianlie)/

(?=p): 匹配符合p子模式前面的那个位置

 

exp1(?=exp2) :匹配exp1,后面必须是exp2(匹配字符)

 

exp1(?!exp2)后瞻断言,匹配exp1,但后面不能是exp2
如匹配姓zhang,但名字不叫xianlie的人:/zhang(?!xianlie)/

(?=p):匹配到的位置之外的位置都是属于(?!p)的

 

exp1(?!exp2):exp1后不为exp2的exp1被匹配到

 

(?<=exp2)exp1

(?<=p):前面的部分满足p的位置

 

(?<=exp2)exp1:满足前边为exp2的exp1被匹配

 

(?<!exp2)

(?<!p):(?<=p)匹配到的位置之外的位置都是属于(?<!p)的

 

贪婪与惰性:

相关字符

对应说明

*?重复任意次,但尽可能少的重复
+?重复一次或多次,但尽可能少的重复
??重复零次或一次,但尽可能少的重复
{m,n}?重复m到n次,但尽可能少的重复
{n,}?重复n次以上,但尽可能少的重复
{n}?重复n次,但尽可能少的重复

修饰符:

修饰符

对应说明

iignoreCase的缩写,表示忽略字母的大小写
m

multiline的缩写,更改^和$的含义,使它们分别在任意一行的行首和行尾匹配

,而不仅仅在整个字符串的开头和结尾匹配。

(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)

gglobal的缩写,进行全局匹配,即对字符串进行全文匹配,直到字符串遍历结束

正则表达式是匹配模式,要么匹配字符,要么匹配位置

实例:

  1. 请输入8~20位英文/数字、特殊字符的组合。特殊字符仅限!@#%
    1. /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#%])[0-9a-zA-Z!@#%]{8,20}$/

推荐在线工具:regex101: build, test, and debug regex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值