1.重复次数
2.限定和特征
3.简写字符集
- 重复次数
. 匹配任意单个字符,但不匹配换行符。
*
号匹配 在*
之前的字符出现 >=0 次。 例如,表达式a*
匹配0或更多个以a开头的字符。表达式[a-z]*
匹配一个行中所有以小写字母开头的字符串。
+
号匹配+
号之前的字符出现 >=1 次。 例如表达式c.+t
匹配以首字母c
开头以t
结尾,中间跟着至少一个字符的字符串。
?
号标记在符号前面的字符 出现 0 或 1 次。 例如,表达式[T]?he
匹配字符串he
和The
。
2.限定和特征
[ ] 号
方括号用来指定一个字符集。 在方括号中使用连字符来指定字符集的范围。 在方括号中的字符集不关心顺序。 例如,表达式[Tt]he
匹配the
和The
。
{}
号
在正则表达式中{}
是一个量词,常用来限定一个或一组字符可以重复出现的次数。
例如, 表达式[0-9]{2,3}
匹配最少 2 位最多 3 位 0~9 的数字。
()
号
特征标群是一组写在(...)
中的子模式。(...)
中包含的内容将会被看成一个整体,和数学中小括号( )的作用相同。
锚点
在正则表达式中,想要匹配指定开头或结尾的字符串就要使用到锚点。^
指定开头,$
指定结尾。
3.简写字符集
正则表达式提供一些常用的字符集简写。如下:
简写描述.除换行符外的所有字符
w匹配所有字母数字,等同于[a-zA-Z0-9_]
W匹配所有非字母数字,即符号,等同于:[^w]
d匹配数字:[0-9]
D匹配非数字:[^d]
s匹配所有空格字符,等同于:[tnfrp{Z}]
S匹配所有非空格字符:[^s]
f匹配一个换页符n匹配一个换行符
r匹配一个回车符t匹配一个制表符
v匹配一个垂直制表符
p匹配 CR/LF(等同于rn
),用来匹配 DOS 行终止符
Github learn-regex
https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.mdgithub.comregex测试:
在线正则表达式测试tool.oschina.net PHP, PCRE, Python, Golang and JavaScriptregex101.com