haiyang416
2013-01-16 15:02:38 +08:00
学习一样新事物时应该从最基本的地方开始,不要被正则的各种符号所迷惑,正则的规则其实很简单。
我们通常使用正则来描述语言,比如“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*