Published on

正则表达式

Authors

正则表达式在线测试工具 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对捕获的数字进行反向引用