正则表达式
简介
正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的。
基础语法图表
single char (单字符) | quantifiers(数量) | position(位置) |
---|---|---|
\d 匹配数字 | * 0个或者更多 | ^一行的开头 |
\w 匹配word(数字、字母) | + 1个或更多,至少1个 | $一行的结尾 |
\W 匹配非word(数字、字母) | ? 0个或1个,一个Optional | \b 单词”结界”(word bounds) |
\s 匹配white space(包括空格、tab等) | {min,max}出现次数在一个范围内 | |
\S 匹配非white space(包括空格、tab等) | {n}匹配出现n次的 | |
. 匹配任何,任何的字符 |
表达式组成
普通字符:
大小写字母、数字、标点符号及一些其他符号
拓展元字符:
\:转义字符,!、\n等
^:匹配字符串开始的位置
例: a、the、^#
$:匹配字符串结束的位置
例: word$
.:匹配除\n之外的任意的一个字符
例: go.d、g…d
*:匹配前面子表达式0次或者多次
例:goo*d、go.*d
[list]:匹配list列表中的一个字符
例: go[ola]d,[abc]、[a-z]、[a-z0-9]
[^list]:匹配任意不在list列表中的一个字符
例: [a-z]、[0-9]、[^A-Z0-9]
{n,m}:匹配前面的子表达式n到m次,有{n}、{n,}、{n,m}三种格式
例:go{2}d、go{2,3}d、go{2,}d
字符:
+:匹配前面子表达式1次以上
例: go+d,将匹配至少一个o
?:匹配前面子表达式0次或者1次
例: go?d,将匹配gd或god
():将括号中的字符串作为一个整体
例:(xyz)+,将匹配 xyz 整体1次以上,如xyzxyz
|:以或的方式匹配字条串
例1: good|food,将匹配good或者food
例2: g(oo|la)d,将匹配good或者glad
以或的方式匹配字条串
例1: good|food,将匹配good或者food
例2: g(oo|la)d,将匹配good或者glad