正则字符匹配规则
^行首的意思$结尾处*通配符\b匹配一个单词边界,单词与空格之间的位置,\w+\b切开成每个单词\d表示数字,\d{5}五位数字,[0-9]数字0~9\w字母,数字,下划线-匹配短破折号\r或者\n换行符\t制表符
\\\本身\s空格,制表符,换页符等空白字符中的任意一个.匹配除了换行符以外的任意字符[ab5@]匹配a或b或5或@[^abc]匹配除了abc以外的任意一个字符[f-k]匹配f到k之间的任意一个字母(包含fk)[^A-F0-3]匹配A`F`和`0`3以外的任意一个字符{n}表达式重复n次,比如\w{2}==\w\w或者a{4}==aaaa{m,n}表达式重复最少m次 最多重复n次, 比如ha{2,3}=>可匹配到haahaaa{m,}贪婪模式,表达式至少重复m次,比如\w\d{3,}=>可匹配g123b456789… 数字可以重复3个以上?匹配0次或者1次, 比如qw?—>qqqw=> qq,qq,qw =>q?,q?,qw 匹配结果就是 q, q, qw+至少匹配一次以上,a+b=> 匹配到abaabaaab|修饰表达式或语句,不是匹配左边就是右边,两个条件均可()修饰一个整体,括号内的表达式可以单独获取\x表示编号在0~255范围内的字符,空格可以表示成\x20\u\uxxxx表示16进制的数,比如:\x4E2D\S匹配一个非空白字符 ,\s匹配一个空白字符\D匹配非数字字符\W匹配所有字母,数字,下划线以外的字符\B匹配非单词边界?:可以理解为函数封装的形式, 比如(?:(\w)\1)+这个规则去匹配e233t66i34p=>结果是3366,?:是封装了一个(\w)这样不会调用,而使用\1就是调用这句表达式
需要加反斜杠转义的字符
^ $ () {} [] . ? + * |
常用正则
-
[\u4e00-\u9fa5]匹配中文字符 -
[^\x00-\xff]匹配双字节字符(包括汉子在内) -
\n\s*\r匹配空白行 -
[a-zA-z]+://[^\s]*匹配网址 -
\d{3}-\d{8}|\d{4}-\{7,8}匹配电话号码 (PS. 新出的手机号已经不适用了) -
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$匹配身份证号