正则表达式简单入门

1,068 阅读2分钟

前言

在我们的日常开发工作中,正则表达式是很常用的功能。看上去 “稀松平常”,可是谁能想到!这个却让我栽了个跟头,跟往常一样做个cv工程师 百度手机号验证随便找一个

我的天啊,这个是2019年的文章,之前我看也不看直接就上手了,然后测试也通过了,到了线上客户已注册完了,为什么我199开头的不行啊,为什么我166开头的不行啊,坑死我了,所以一定学习正则至少能看懂,能写简单的正则!

小试身手

先用语言描述百度的手机正则是什么意思

^1[34578]\d{9}$  

1开头+34578第二位数字+9位数字 是不是很简单呢

元字符

这里只列出几个常用的更多的看底部的文档

\     转义符
^     字符串初始值
$     字符串结束值
\*    匹配0次或者多次
\+    匹配一次或者多次
\+    匹配式零次或一次
{n}   匹配n次,不能为负数
{n,}  至少匹配n次,不能为负数
{n,m} 匹配n <= m次,不能为负数
\b    匹配一个单词边界
\d    匹配一个数字
/g    全局匹配
/i    不区分大小写
()    分组
[]    字符串合集

步步解析

上面的元字符是不是看晕了,没关系稍微解释下就明白了,其实很简单

先来一个之前的

^1[34578]\d{9}$   //^代表开头后面加个1就是1开头 []代表允许的数据34578说明是可以为34578 \d代表数字{9}代表匹配9次

再来一个新的

 ^\d{4}[/-]\d{2}[/-]\d{2}$   //^开头4位数字 []里面是/- 允许位/或者- \d{2}再两位数字 再/或者- 再2位数字结尾

小展身手

现在来几个例子

1.将那手机正则改为正确的

^1[34578]\d{9}$  ==> ^1[3456789]\d{9}$           //在中括号内加上6和9,这样就行了 代表第二位能为3456789         

2.将2019-11-07和2019/11/07 改为 07-11-2019
首先找到我们要的数据 ^(\d{4})[/-](\d{2})[/-](\d{2})$ 通过()进行分组 再通过$2-$3-$1进行重新排列就行了

结语

这就是简单的正则入门,个人感觉真的是很简单了,以前没想过要学习这个,感觉网上抄一抄就好了,可是最近重视了起来,因为项目上线路由要改成懒加载的,几百个路由如果手改要改一天还不一定对,用正则就可以轻松搞定啦

文章参考