- ()表示分组,把某些连续的字符视为一个整体对待
- []匹配一位字符,[a-z]匹配a到z中的一位字符,[ ^a-z[hk]]这一位的字符不能是除h,k之外的任意的小写字母
- {},{m}对前面的一位字符或者一组字符连续出现了m次;{m,}表示前面的一位或者一组字符连续出现了至少m次;{m,n}表示前面的一位或者一组字符连续出现了至少m次,至多n次
- . 表示通配符,可以匹配一个任意的字符
- ?前面的一位或者一组字符连续出现0次或者1次
- +前面的一位或者一组字符连续出现了1次或者多次
- *前面的一位或者一组字符连续出现了0,1或者多次
- \d匹配所有的数字,等同于[0-9]
- \D匹配所有的非数字,等同于[^0-9]
- \w匹配包含下划线在内的所有单词字符,等同于[a-zA-Z0-9_]
- \W匹配包含非下划线,非单词字符,非数字的的字符
- \s匹配任何不可见字符,如制表符,空格
- \S匹配任何可见字符
- | 作用于整体或者是一个分组,表示匹配的内容,可以是任意的一个部分
IP的正则匹配
((25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]?\d)
身份证号的IP匹配:
地址码长6位,首尾不能为0
日期码,年份规则:年份长度为4,以数字18,19,剩余两位是0-9的数字
月份码规则:月份码长2位,第一位是0,第二位数字为1-9;第一位数字为1,第二位数字为0-2
日期码规则:第一位数字0-2,第二位数字1-9;或者10,20,30,31
顺序码规则:顺序码长3位,全是数字
校验码规则:1-9或者x
[1-9]\d{4}[1-9] (18|19|20)[0-9]{2}((0[1-9])|(1[1-2]))([0-2][1-9]|10|20|30|31)\d{3}[1-9X]