正则表达式

[]

[] 表示匹配中括号中的任意一个字母 
如[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 匹配空白字符
 匹配边界 如abc只能匹配到完整单词abc abcd匹配不到

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


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

 

. ? {}

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


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


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

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

进阶还需学习 分组 断言 

原文地址:https://www.cnblogs.com/hbhb/p/15212280.html