正则表达式笔记

正则表达式

正则表达式基础

1. 元字符
元字符说明
.匹配除换行符以外的任何数字
\w匹配字母或数字或下划线或汉字
\s匹配任意空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

例:

1.匹配有abc出现的字符串

\babc或者^abc

2.匹配8位数字qq号

^\d\d\d\d\d\d\d\d$

3.匹配1开头的11位数字手机号码

^1\d\d\d\d\d\d\d\d\d\d$
2. 重复限定符
语法说明
*重复零次或者更多次
+重复一次或者更多次
重复零次或者一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

1.匹配8位数字QQ号

^\d{8}$

2.匹配1开头的11位数字的手机号码

^1\d{10}$

3.匹配银行卡号是14-18位的数字

^\d{14,18}$

4.匹配以a开头的,0个或者多个b结尾的字符串

^ab*$
runoo+b,可以匹配runoob,runooob,runoooooooob,"+"代表前面的字符至少出现一次(一次或多次)
runoo*b,可以匹配runob,runoob,runoooob,"*"代表字符可以不出现,也可以出现一次或多次
colou?r,可以匹配color或colour,"?"代表前面的字符最多出现1次(0次或1次)
3. 分组

如上边二4中的例子,我想让ab同时被*限定,那么可以使用()来做限定

匹配字符串中包含0到多个ab开头

^(ab)*
4. 转义

对于上边的,如果需要对"+","?“这样的特殊字符进行查询,需要添加转义字符”/+"

如要匹配以(ab)开头的

^(\(ab\))*
5. 条件或

刚才的手机号匹配,我们知道不同运营商的手机号有自己的号段,例如联通有130/131/132/155/156/185/186/145/176等号段,假如让我们匹配联通的号码,我们需要使用或

正则表达式用“|“符号来表示“或“,叫做分支条件,当满足任何一个条件时,都会匹配成功

^(130|131|132|155|156|185|186|145|176)\d{8}$
6. 区间

五 条件或中的例子还有简化的方法

正则表达式提供一个元字符中括号[]表达区间条件

1.限定0到9,可以写为[0-9]

2.限定a到z,可以写成[a-z]

3.限定某些数字,可以写为[123456]

则上边的正则表达式可以改为如下

^(13[0-2]|15[5-6]|18[56]|145|176)\d{8}$

正则表达式进阶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值