1.定义
正则表达式的英文regex,是一种自定义的规则,用于检测数据是否符合一定的规则。
2.语法
2.1普通字符
字母,数字,下划线,没有特殊意义的标点符号。
2.2转义字符
- \n:换行符
- \t:制表符
- \:\本身
- 下列有特殊含义的字符前为加入\来匹配这些字符本身
^,$,(,),{,},?,+,*,|,[,]。
2.3标准字符集合(区分大小写,大写是相反的意思)
- \d:任何一个数字,0-9;
- \w:任意一个字母或数字或下划线A-Z,a-z,0-9,_;
- \s:包括空格,制表符,换行符等空白字符的其中任意一个字符;
- .:小数点可以匹配除换行符外任意一个字符;
2.4 自定义字符集合
- [ ]: 元字符,表示匹配一个长的数据;
- [ab5@]:匹配"a",“b”,“5”,"@"其中任意一个字符;
- [^abc]:匹配"a",“b”,"c"以外的任意一个字符;
- [f-k]:匹配"f"到"k"之间任意一个字符;
- [^A-F0-3]:匹配"a",“b”,"c"以外的任意一个字符;
- 标准字符集合,除小数点外,如果被包含于括号,自定义字符集合将包含该集合
[\d.-+]:数字,小数点,-号,+号,匹配其中一个;
2.5量词:修饰匹配次数的特殊符号
- {n}:表达式重复n次,eg:\d{6}
- {m,n}:表达式至少重复m次,最多重复n次,eg:\d{3,6}
匹配时默认贪婪模式,按照例子就是有6个数字就匹配6个;
非贪婪模式\d{3,6}?,匹配3个就接着匹配下一个; - {m,}:表达式至少匹配m次 ,eg:\d{3,}
- ?:匹配表达式0次或1次,eg:a\d?b 匹配:“ab”,“a6b”
- .+:匹配表达式至少出现一次,eg: a\d+b 匹配:“a7b”,“a66b”
- .:匹配表达式不出现或出现任意次,eg: a\db 匹配:“a7b”,“a66b”,“ab”
2.6字符边界
- ^:与字符串开始的地方开始匹配
- $:与字符串结束的地方开始匹配
2.7匹配模式
- 单行模式(singleline)
- 多行模式(multiline)
- 忽略大小写(ignorecase)
https://www.cnblogs.com/smailxiaobai/archive/2012/02/07/2341503.html
2.8选择符和分组
- I:或 ;eg:a|b 匹配:a或b
- ():捕获组 ;eg:([a-z]{2})([a-z]{2})\2 匹配:batoto(强行理解一下吧,2表示第二分组)
检验正则网站:
https://regexr.com/
自动生成代码网站:
http://tools.jb51.net/regex/create_reg