[]
[] 表示匹配中括号中的任意一个字母 如[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)
进阶还需学习 分组 断言