30分钟弄懂正则表达式
其实写这个题目有些标题党了,毕竟,罗马不是一天建成的。
我是上大学期间接触正则,其实都学的不太好,主要五花八门记不住啊!再就是前端做验证写的多点,不然根本不用这个东西,
这玩意喝醉酒了,再看一眼,还是不会的,但是不会了就拿出来看看也是极好的。
正则概述
学习一样新事物时应该从最基本的地方开始。
不要被正则的各种符号所迷惑,正则的规则其实很简单。
我们通常使用正则来描述语言,比如“hello”,因此你可以把正则看成一个集合,例如:空集合为{}(一般记作ε),一个字母集合为{a}。
运算规则
正则最基本的运算规则只有三条:
1.并运算,记作 X|Y ,你可以理解为加法。例如a|b所表示的集合为{a,b}
2.连接运算,记作XY ,你可以理解为乘法。例如X为a|b,Y为c|d,那么XY的集合为{ac,ad,bc,cd}
3.克林闭包运算,记作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*
记住上面的三条运算规则之后,你就能看懂并且会写一些基本的正则表达式了,所以写一些高级点的正则表达式,就需要借助工具和一些前人写的东西来节省时间啦!
测试工具
以下是几个常用的工具和网站,我喜欢用第二个和第三个,毕竟在线测试,很方便,第一个也很不错的。
正则表达式测试器
Regexr(正则表达式在线测试)
Debuggex(正则表达式在线测试)
常用正则表达式