- Published on
正则表达式
- Authors
- Name
- Jason Yang
- @yangjinlong86
正则表达式在线测试工具 http://tool.chinaz.com/regex/
上方的文本区是输入正则表达式的,下方的文本区域是用来输入目标文字的。 在目标区域输入
138-0013-8000
字符串字面值
字符串字面值,就是字面上看起来是什么就是什么。
在上方正则表达式区域输入138-0013-8000
,下方目标区域将会高亮显示出匹配结果。
在上方文本框输入[0-9]
,下方文本框中所有的数字会以黄色和蓝色交替高亮显示。[0-9]
表示匹配0到9范围内的任意数字,这种形式的表达式称为字符组。
正则表达式\d
是[0-9]
的简写形式, 可以使用\d\d\d-\d\d\d\d-\d\d\d\\d
来匹配手机号码
重复
\d
三次和四次就可以分别匹配三个和四个数字,该表达式中的连字符是一个字面值,因此会被原样匹配。
用大写D可以匹配任何一个非数字字符
\d\d\d\D\d\d\d\d\D\d\d\d\d
还可以用点号(.)来匹配任意字符,英文下的句号,是一个通配符。
接下来我们用捕获分组来匹配电话号码中的某一部分,使用后向引号对分组中的内容进行饮用。要创建捕获分组,先将一个\d
放在一个圆括号里,这样就将它放入了一个分组中,后面可以用\1
来对捕获的内容进行后向引用:
(\d)\d\1
\1
对括号内分组捕获分组的内容进行了反向引用。
(\d)
匹配第一个数字并将其捕获\d
匹配第二个数字,但没有捕获,因为没有括号\1
对捕获的数字进行反向引用