正则表达式
一、普通匹配
1.普通匹配
直接输入需要匹配的内容
2.可选匹配
[Pp]表示既可以匹配大写P也可以匹配小写p
3.区间匹配
用-表示区间,如[a-z0-9A-Z]
4.特殊字符匹配
使用转义符 “\”来表示要匹配的特殊字符,如-表示匹配”-“
5.取反匹配
使用“^”表示取反,如 [ ^0-9]表示不包含0-9
n[ ^e]表示匹配n后面的字母不为e的字符组
二、快捷匹配
1.快捷匹配数字和字母
\d表示匹配任意数字
\w表示匹配任意单词字符,包括[A-Z]、[a-z]、[0-9]、_
2.快捷匹配空白
\s表示匹配空白字符,如空格、tab、换行等
3.匹配单词边界
\b表示单词边界,如 \bmaster\b 表示匹配有边界的master,即可匹配master abc,无法匹配masterabc
4.快捷取反匹配
普通取反使用“^”符号
快捷取反将小写改为大写,即表示取反,如\w表示匹配任意单词字符,\W即为对\w的取反
\D即为对\d的取反
5.首尾匹配
^abc表示匹配以abc为开头的字符串
abc$表示匹配以abc为结尾的字符串
6.任意字符匹配
用“.”代表匹配任何单个字符,只能出现在方括号外,如“.ab”表示匹配任意字符后是ab的字符串,可以匹配tab,无法匹配ab、ability、acb
7.可选字符匹配
如color和colour,两者均需要被匹配,此时可使用可选字符匹配,用“?”指定一个基本单元可选,如用“colou?r”来匹配两种拼写
三、多数据匹配
1.同种数据重复匹配
当需要匹配如电话号、身份证号等字符组时,可通过观察其特征,使用重复匹配。
在一个字符组后加上{N}就可以表示该字符组出现N次
如021-12345678可通过\d{3}-\d{8}进行匹配
2.重复区间
当需要匹配身份证号时,可以是17位,也可以是18位数字,此时可以通过设置区间进行匹配
使用{M,N}表示匹配的区间,M是下界,N是上界
**注:**当使用\d{17,18}时,既可以匹配17个数字,也可以匹配18个数字,不过当有18个数字时,优先匹配的是18个数字,因为正则表达式默认为贪婪模式,即尽可能的匹配更多字符,在表达式后加上?,即可使用非贪婪模式
3.开闭区间
当字符组重复次数没有边界时,使用开闭区间,如\d{2,}即为重复2次至无限次
速写:+表示重复次数为1次到无数次,*表示0次到无数次
如a\d+表示匹配a后跟随1个至无数个数字的字符串