正则表达式详解

正则表达式又称规则表达式。通过使用某个字符串来匹配某些符合我们想要的语法的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。


目录

对某个字符出现次数的限制:"?"、"+"、"*"、"{}"。

对某一字符串操作:()

匹配字符是否在某一范围内:[]

其他一些常见的元字符:


对某个字符出现次数的限制:"?"、"+"、"*"、"{}"。

        ? : 将问号放在某个字符后面表示该字符在该位置出现次数为0或者1。比如:

a?b 可以匹配 含有ab或者含有b的字符串。

        + :将加号放在某个字符后面表示该字符在该位置至少出现一次。比如:

a+b 可以匹配 含有ab或者含有aaaaaaaaaaaaaaab的字符串,但不能匹配只有b没有a的字符串。

        * :将星号放在某个字符后面表示该字符在该位置出现次数为零次或多次。比如:

a*b 可以匹配 含有ab或者含有b,或含有aaaaaaaab的字符串。

        {} : 花括号有两种使用方法:{n}、{n,}、{n1,n2}。{n}放在某个字符后面表示该字符在该位置出现n次;{n,}表示该字符在该位置至少出现n次;{n1,n2}表示该字符在该位置出现次数至少为n1,至多为n2。 对了,好像花括号里面不能有空格。比如:

a{1}b 可以匹配ab,但不能匹配只有b没有a的。   a{2,}可以匹配aab,也可以匹配aaab。 

        如果想匹配含有如“?”的字符串要在前面加上反斜杠,代表这只是一个字符,如a\?b会匹配含有a?b的字符串,而不会匹配ab或者b。

对某一字符串操作:()

        前面我们所有的操作都是对一个字符进行操作的,若是要对某一字符串做操作的话可以用小括号,小括号可以将其里面的字符串视为一个字符,之后就可以调用上述操作。 小括号里好像也不能加空格,使用诸如或(|)操作符的自己也要加小括号哦,比如

(ab){1,2} 可以匹配 ab,也可以匹配abab,但不能匹配bbaa。而a(dog|cat)可以匹配acat,adog|cat就不行。

匹配字符是否在某一范围内:[]

        [] : 中括号会将里面的字符用或连接在一起,视为一个字符后去匹配,后面也可以带“?”、“+”等。

        比如[ac12],会匹配存在a或c或1或2的字符串。[ac]?b ,会匹配含有b、ab、cb的字符串。 [a-z]、[A-Z]、[0-9]分别匹配存在小写字母,大写字母,数字的字符串。 [a-zA-Z]则会匹配存在字母(不管大小写)的字符串。

        中括号中还有一个常用的运算符 ^(非),这个运算符放在中括号里的第一位,表示在中括号中的字符都不匹配。如 [^a-z] 会 123,ZA等,但不会匹配只含小写字母的字符串,比如avbssf。

其他一些常见的元字符:

        元字符就是指那些在正则表达式中具有特殊意义的专用字符,比如前面的“?”、“+”等。但是这会有一个问题,

        \s : 用来匹配单个空格符,包括tab键和换行符。

        \d : 用来匹配从0到9的数字,效果同[0-9]。

        \w: 用来匹配字母、数字或下划线,效果同[a-zA-Z0-9_]

        . :用来匹配除换行符外的所有字符

元字符也有表示取反的元字符,一般就是将反斜杠后面的元字符变大写。如下

       \S:匹配\s不匹配的字符串

        \D:匹配\d不匹配的字符串,同[^0-9]

        \W:匹配\w不匹配的字符串,同[^a-zA-Z0-9_]

在此附上一个检测正则表达式的网站:regex101: build, test, and debug regex

还有一位up的视频:10分钟快速掌握正则表达式_哔哩哔哩_bilibili 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值