常用正则表达式总结

正则表达式(regular expression):就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征,它写在" "之间。

Java中对于以\开头的正则表达式,前还要再要加一个\;eg:匹配三个数字,\\d{3}

一、匹配单个字符表达式

\d{3}:只匹配三个数字

a:只匹配字符a

[abc]:匹配单个字符,要求是a、b、c其中之一

[a-z]:匹配单个字符,要求是小写字母     

[A-Z]:匹配单个字符,要求是大写字母 

[a-zA-Z0-9_]:匹配单个字符,要求是小写字母或大写字母或数字或_

[^a]:匹配单个字符,不能是a

[^abc]:匹配单个字符,不能是a、b、c

\\\\:匹配单个反斜杠,在正则表达式中,\\解释为\,\\被正则表达式引擎解释为\;正则中两个\解释为一个\

 

\d:匹配单个数字,等价于[0-9]

\D:匹配单个字符,要求非数字

\w:匹配单个字母、数字或_,等价于[a-zA-Z0-9_],但不支持/n和/d

\W:匹配单个字符,要求非字母、数字或_

\s:匹配单个空白字符,\n、\r、\t或空格

\S:匹配单个非空白字符

.      匹配单个除换行符(\n)以外的任意字符

\.     匹配.符号本身

\\.    匹配.符号本身

\$    匹配$符号本身

\^    匹配^符号本身

 

二、匹配字符串

1. 汉字:^[\u4e00-\u9fa5]{0,}$

2. 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

3. 长度为3-20的所有字符:^.{3,20}$

4. 由26个英文字母组成的字符串:^[A-Za-z]+$

5. 由26个大写英文字母组成的字符串:^[A-Z]+$

6. 由26个小写英文字母组成的字符串:^[a-z]+$

7. 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

8. 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$

9. 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10. 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11. 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+ 12 禁止输入含有~的字符:[^~\x22]+

史上最全正则表达式大全

 

三、匹配行边距

^a:以a开头

b$:以b结尾

ps:对Java来说,本身整体匹配,所以可以不用加行开始和结束符,例如匹配a123b,可以用"a\\d{3}b"

 

四、数量词(放表达式之后)

{n}   表达式重复n次,eg:"\w{2}"等价于"\w\w","a{5}"等价于"aaaaa"

{m,n}   表达式至少重复m次,至多重复n次,eg:"ba{1,3}"可匹配"ba"、"baa"、"baaa"

{m,_}   表达式至少重复m次,eg:"\w\d{2,_}"可匹配"a12"、"_4576"、"M1234"、"455"等

?  匹配表达式0次或1次,等价于{0,1}

+    表达式出现至少1次,等价于{1,_},eg:"a+b"可匹配"ab"、"aaab"、"aaaaab"

*     表达式不出现或出现任意次,等价于{0,_},eg:"a*b"可匹配"b"、"ab"、"aab"、"aaab"

 

五、转义字符

\r:回车

\n:换行

\t:制表符,即Tab

\f:换页

\b:退格

 

六、贪婪模式和非贪婪模式

一般默认是贪婪模式,只要满足条件全部匹配

用非贪婪模式需要加?,选取尽可能少的满足条件的String进行匹配

 

 

 

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值