浅谈正则表达式
大家都知道,正则表达式是一个复杂而强大的东西,今天就由我来给大家讲一讲!
何谓正则表达式
有时候我们会有匹配的需求,例如:
123 —— 匹配成功
+123 —— 匹配成功
-123.41 —— 匹配成功
123+ —— 匹配不成功
0123 —— 匹配不成功
x123 —— 匹配不成功
此时一个很好的办法就是用正则表达式。
没错,这种表达式就是用来做匹配的,删除一些东西又不想手动改的话特别有用!
工具推荐
我个人的话用的就是菜鸟工具的正则表达式工具,贴一下网址:https://c.runoob.com/front-end/854/
基本语法
- 在[]中加入字符就可以实现这些字符的匹配,如:[ABCD]匹配一个A-D的大写字母。
- []中可以加入-,表示从哪到哪,如:[A-Za-z]匹配一个字母。
- {n}表示匹配n次,{n,}表示匹配n次及以上,{,m}表示匹配m次及以下,{n,m}表示匹配n-m次。
- *相当于{0,},+相当于{1,},?相当于{0,1}。
- ()表示子表达式,如:([A-Z][a-z]){3,}可以匹配AbCdEf,可以匹配AyRoAlLeGa,但不能匹配ArCl或ABDcEr。
- ^表示开头,$表示结尾。
- |表示有多个可选项,如:foo(ood|a)能匹配fooood和fooa。
- 如果是.,则得写成\.。
让我们现在就去实战演练一下吧!
实战演练
1.手机号码(首位为1,后面的10位随便)
2.0或不带前导0的正整数(不带+号)
3.日期(6.15,7.31,8.5等),每个月都有31天。(雾
4.开始时的那道题。
注:以上四道题都要在^$里写。
答案
先加入几行线再写答案吧。
1.^1[0-9]{10}$
2.^0|[1-9][0-9]*$
3.^([1-9]|1[0-2])\.([1-9]|[1-2][0-9]|3[0-1])$
4.^[+-]?[1-9][0-9]*(\.[0-9]+)?$
不知道小伙伴们答没答对呢 ~
题外话
话说Editor.md是真的好用,比TinyMCE好用多了!