Introduce
正则表达式:regular expression,也称为模式。
元字符
在正则表达式里有特殊含义的字符,主要有以下几种
基本元字符:
. 匹配任意单个字符
| 逻辑或操作符
[] 匹配字符集合中的一个字符
() 子表达式
[^] 对字符集合求非,将作用于给定字符集合里的所有字符或字符区间,而不是仅限于紧跟在它后面的那一个字符或字符区间
- 定义一个区间,例如[a-z],作为元字符,只能用在[]之间,在字符集合以外的地方,只是一个普通的字符,只能与-本身相匹配,因此在字符集合外不需要转义。
\ 对下一个字符转义数量元字符(只作用于紧跟着它的前一个字符或元字符)
* 匹配前一个字符(或子表达式)的零次或多次重复
? 匹配前一个字符(或子表达式)的零次或一次重复
+ 匹配前一个字符(或子表达式)的一次或多次重复
{} {m} {m,} {m,n}位置元字符
^ 匹配字符串的开头
$ 匹配字符串的结束
\b 匹配单词边界特殊元字符
\d 匹配任意单个数字
\w 匹配任意单个数字,字母,下划线
\s 匹配一个空白字符
贪婪元字符
. + *为贪婪型元字符,他们在进行匹配时的行为模式是多多益善而不是适可而止的,它们会尽可能的从一段文本的开头一直匹配到这段文本的末尾,而不是从这段文本的开头匹配到碰到第一个匹配时为止,懒惰型元字符写法很简单,只要给贪婪型元字符加上一个?后缀即可
回溯
回溯引用指的是模式的后半部分引用在前半部分定义的子表达式 向前查找
?= 被匹配的文本不包含在最终返回的匹配结果里 向后查找(?:包含匹配)
?<=,前后查找要用在子表达式里
验证邮箱
/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
在线测试工具