Akagi201
6/12/2014 - 2:27 AM

regex.md

library

可视化

正则表达式在线测试

tutorial

cheatsheet

tutorial

介绍

  • 11个元字符: \, ^, $, ., |, ?, *, +, (), [], {}
  • 特殊含义: \, .
  • 6个字符类: \d, \D, \s, \S, \w, \W
  • 4个位置类: \b, \B, \A, \Z, (^, $)
  • 重复: *, +, ?, {}
  • 可选: |, []
  • 分组: ()
  • 编译选项: I, L, M, S, U, X

经验

学习一样新事物时应该从最基本的地方开始,不要被正则的各种符号所迷惑,正则的规则其实很简单。

我们通常使用正则来描述语言,比如“hello”,因此你可以把正则看成一个集合,例如:空集合为{}(一般记作ε),一个字母集合为{a}。

正则是最基本的运算规则只有三条:

1.并运算,记作 X|Y,你可以理解为加法。例如a|b所表示的集合为{a,b} 2.连接运算,记作XY,你可以理解为乘法。例如X为a|b,Y为c|d,那么XY的集合为{ac,ad,bc,cd} 3.克林闭包运算(Kleene Closure),记作X,你可以理解为零个或者多个X连接。例如a所表示的集合为{ε,a,aa,aaa,......}

现在你已经了解正则的全部规则了,那些复杂的规则你可以看作是语法糖,都可以用这三个规则来描述。举几个例子:

1.hello,即5个字母的连接运算:hello 2.[ab],即为ab两个字母的并运算:a|b 3.[0-9],即为并运算0|1|2|3|4|5|6|7|8|9 4.A?,即为并运算A|ε 5.A+,即为AA*

Refs