正则表达式


一、正则匹配基本规则

符合说明
^起始位置
|表示或
\表示转义
匹配0~1次
+匹配1~N次
*匹配0~N次
{n}匹配内容出现n次
{n,m}匹配内容出现n到m次
[]表示在集合中,匹配包含集合中的任意一个字符
[^]表示不在集合中,匹配不包含集中的任意一个字符
()在正则复杂的时候,可以方便区分对应的正则表达式,可以加匹配次数
[0-9]匹配数字,匹配出结果是单个数字。
\d匹配数字,匹配出结果是单个数字。等同于[0-9]
[a-zA-Z]+匹配英文字符,匹配出结果是连续直到出现非英文字符
\w匹配英文字符和数字以及下划线。等同于[a-zA-Z0-9_]
\W匹配所有,不包含英文和数字以及下划线。等同于[^a-zA-Z0-9_]
\s匹配空白符合换行
\S匹配所有字符,不包含空白符和换行
[\u4e00-\u9ffa]*匹配中文,匹配出结果是连续的,直到出现非中文字符

二、使用步骤

匹配英文数字以及下划线

等同效果:[a-zA-Z0-9_]+
反义效果:[\W]+ 或是[^a-zA-Z0-9_]+
在这里插入图片描述

匹配除数字、英文、下划线之外所有字符

等同效果:[^a-zA-Z0-9_]+
反义效果:[\w]+ 或是[a-zA-Z0-9_]+
在这里插入图片描述

匹配空白符合换行

因空白符和换行,是特殊字符。不能显示出来
等同效果:[\r\n ]+
反义效果:[\W]+ 或是 [^\r\n ]+
在这里插入图片描述

匹配除空白符合换行之外的所有字符

等同效果:[^\r\n ]+
反义效果:[\w]+ 或是 [\r\n ]+
在这里插入图片描述

金额和比例以及手机号

(-?[0-9,]+.[0-9]+元)|(-?[0-9,]+.[0-9]+%)|([0-9]{11})
说明: (-?[0-9,]+.[0-9]+元) 表示-出现0到1次。0至9和, 至少出现一次。 小数点必须出现1次。 小数位至少出现一次。
在这里插入图片描述

[…] 匹配到的内容在当前的集合中

[\u4e00-\u9ffaa-zA-Z0-9]+ 表示字符集中存在中文字符或英文字符或数字。其中+表示显示1最少一次。
在这里插入图片描述

[^…] 匹配到的内容不在当前集合中

代码如下(示例):在这里插入图片描述

匹配前或后必须存在特定值的才能匹配成功

(?<=[”]?)[a-zA-Z0-9\u4e00-\u9ffa]+(?=[\\(”])
(?<=[\\(”]?) 前面可以存在一个双引号。
[a-zA-Z0-9\u4e00-\u9ffa]+ 中间部分是中文和英文字母和数字必须出现
(?=[\\(”]) 后面必须出现一次双引号或是括号(
在这里插入图片描述

匹配前或后不存在特定值的才能匹配成功

(?<=[”]?)[a-zA-Z0-9\u4e00-\u9ffa]+(?=[\\(”])
(?<=[\\(”]?) 前面可以存在一个双引号。
[a-zA-Z0-9\u4e00-\u9ffa]+ 中间部分是中文和英文字母和数字必须出现
(?=[\\(”]) 后面必须出现一次双引号或是括号(

注意

正则匹配是有顺序的,如果字符串有被第一个匹配到,而下一个正则需要上一个正则匹配的部分内容,即使看起来是满足正则当前正则表达式,也是匹配不到对应内容。

从下图可以看到10%未匹配到。但是看起来满足(\d+%)的正则匹配
在这里插入图片描述

对应只有一个用来匹配10%的(\d+%)
在这里插入图片描述

密码必须包含小写字母、数字、大写字母,长度8到10

(?=.*\d)前面任意字符,后面跟数字
(?=.*[a-z]) 前面任意字符,后面跟小写字母
(?=.*[A-Z])前面任意字符,后面跟大写字母
(?=exp1exp2) 前面必须存在exp1,但是不显示。匹配出结果exp2
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ 判断不作为首位,相当于^[a-zA-Z0-9]{8,10}$
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值