最近用了一款叫做RegexBuddy的“神器”把一些常用的正则表达式都大概试了一遍,发现非常好用,我把一些试过的正则表达式都截图存了下来。
1. 关键词原文:
直接匹配与原文相等的字符
2. 字符集:
语法:[备选字符列表][备选字符列表]… 每位字符集只能匹配到一个字符,且每个字符集中至少匹配一次
3. 简写:
3.1 如果备选字符列表是连续的,可以省略中间字符,例如:
数字: [0123456789] --> [0-9]
大小写字母: [a-z] [A-Z]
汉字: [\u4e00-\u9fa5]
3.2 预定义字符集
\w: 字母数字或者下划线字符
\W : 非字母数字或者下划线字符
\d: 数字字符
\D : 非数字字符
\s: 空白字符
\S : 非空白字符
\b :单词边界
\B : 非单词边界
4. 量词:
规定一位字符集出现次数 每个量词都只用于与他相邻的前一个字符集
4.1 有明确数量的边界
字符集{min,max} : 规定字符集最少出现min次,最多max次
字符集{min,} : 规定最少出现min次,不规定上限
字符集{n} : 规定必须出现n次
4.2 没有明确的数量的边界
字符集? : 规定字符集可有可无,规定最多出现一次
字符集* : 规定字符集可有可无,不规定出现次数
字符集+ : 规定最少出现1次,不规定上限
5. 选择和分组:
分组: 将多个字符集组成一组 可以让多个量词修饰多个字符集
选择: 类似于或运算,匹配任意一个规则即可 ‘|’
6. 匹配指定位置:
字符串的开头 : ^(字符集)(注意当^存在于[]中与字符集配合使用时,会匹配除了某字符集
之外的所有字符)
字符串的结尾 : (字符集)$
常用例子
手机号:(+86)|(0086)?1[3-9]\d{9}
邮箱:\d+@\w{2,}(.[0-9a-zA-Z]{2,3}){1,2}