正则表达式常用匹配

首先推荐一个regex在线校验链接: https://regex101.com/.

一、限定符:

限定符都是作用在符号前面的字符或字符串

1.?

表示?前面的字符可出现0次或者1次,如:user?可以匹配 useuser

2.*

*表示*前面的字母可出现0-n个,如:ab*c 可以匹配ac、abc、abbbc

3.+

+表示+前面的字母可出现1-n个,与*的区别在于,*可以匹配0个,如:ab+c 可以匹配abc、abbbc但是不可以匹配ac

4.{n}

{2}表示{2}前面出现n次,如:ab{2}c 只可以匹配abbc,不可以abc、abbbc
{2,6}表示{2,6}前面的字母只能出现2-6次,如:ab{2,6}c 只可以匹配abbc、abbbc
{2,}表示{2,}前面的字母只能出现大于等于2次,如:ab{2,}c 只可以匹配abbc、abbbc

5.(abc)+多字符匹配

(abc)+表示+前面的字母串abc可出现1-n个,与*的区别在于,*可以匹配0个,如:(abc)+c 可以匹配abc、abcabccc

二、或 运算:

1.a(apple|banana) 或|

可以匹配aapple、abanana,注意括号不可少,如果去掉aapple|banana,则是要么aapple要么banana

三、字符类

1.[abc]+

表示构成只能来自[]内的字母,可以匹配aaaabbbcc、cacbaaa

2.[a-z]+

[a-z]+表示构成只能来自a-z内的小写字母,可以匹配aaaabbbcc、cacbaaa
[a-z0-9A-Z]+表示构成能来自a-z内的小写字母0-9内的数字A-Z内的大写字母,可以匹配aaaabbbcc、cacbaaa123A

3.[^a-z]+

[^a-z]+表示构成不能来自a-z内的小写字母,换行符也算,不可以匹配aaaabbbcc、cacbaaa
[^a-z0-9A-Z]+表示构成不能来自a-z内的小写字母0-9内的数字A-Z内的大写字母,所以只能匹配标点符号等

四、元字符

正则里面的大多数元字符以\开头,注意是向右

\d代表数字字符,等同于[0-9]
\w代表所有英文字符、数字、下划线
\s代表空白符,包括tab、换行符、空格

\D代表非数字字符,等同于[^0-9]
\W代表所有非 英文字符、数字、下划线
\S代表非空白符,包括tab、换行符、空格

\b表示单词边界
.表示任意字符但不包括换行符
^ 表示行首,如^a只会匹配 行abccc、行asss,不匹配行sasd
$ 表示行尾,如a$只会匹配行bccca、行asssa,不匹配行asasd

五、贪婪与懒惰匹配

举例: < select >666< /select >

贪婪匹配: <.+> 默认会匹配全部< select >666< /select >
懒惰匹配:只需在+后面加上个即:<.+?> 这只会匹配< select >、< /select >

六、实例

1.匹配颜色

#[a-fA-F0-9]{6}\b

2.匹配ip

\b\d+\.\d+\.\d+\.\d+\b   //不完美

\b[0-255]+\.[0-255]+\.[0-255]+\.[0-255]+\b //不完美

\b((25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\b  //完美

总结:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值