正则表达式

[]

[] 表示匹配中括号中的任意一个字母 
如[Pp] 能匹配到P或p ,[Jj]ava能匹配到Java或java

更深一步 如果我想匹配9876543210 可以写成[0123456789] 这样就能匹配所有数字
但比较啊麻烦 可以写成[0-9] -表示区间的意思
同理 想匹配所有大小写字母可写成[a-zA-Z]

那么特殊字符怎么匹配呢 如要匹配- 可以用转译符\  如[\-]匹配-

 

^

^在[]中表示不匹配的值
如匹配 第一个字爱 第二个字不能为‘你’ 的字
爱[^你] 

^不在[]中表示匹配开头
如^ab 能匹配ab 但bab中的ab匹配不到 只能匹配a开头的


同上$表示匹配结束
如ab$ 能匹配到aab中的ab 匹配不到abb

 

 

快捷写法

匹配全数字/字母 写一大堆比较麻烦 有快捷方式
\d 匹配全数字
\w 匹配全字母
\s 匹配空白字符
\b 匹配边界 如\babc\b只能匹配到完整单词abc abcd匹配不到

还有非的快捷方式
如\d是匹配全数字 \D是匹配非数字 改成大写 以上都同理


+表示匹配1到无数个 相当于{1,}
*表示匹配0到无数个 相当于{0,} 也很常用

 

 

 

 

. ? {}

.表示匹配任意字符(换行符\n不能匹配)  比较常用
如匹配任意字符后为ar的可以写 .ar


?表示可匹配也可不匹配
如想同时匹配hai和hi可以写成 ha?i


{}表示重复次数
如\d{3}即\d\d\d 匹配3位的数字
23 2345匹配不到 234能匹配到

\d{3,4}表示匹配区间 若数字为1234则有先匹配4位(1234)
\d{3,4}?也是匹配区间 若数字为1234则有先匹配3位(123)

 

 

进阶还需学习 分组 断言 

 

正则表达式

上一篇:Controller 中使用Async注解失效


下一篇:MySQL查询日志总结