快速总结正则表达式
正则表达式 又称规则表达式,(在代码中常简写为regex、regexp或RE) 即按照一定的规则组成的一个表达式。
1. 正则表达式的适用范围
在大多数编程语言中,如:Java,c#,php,JavaScript 中都可以使用。它不属于任何一门语言,它是一门技术。
2. 正则表达式的作用
正则表达式是用来匹配字符串的。举个例子,大家应该都玩过王者荣耀,在游戏中评论时,如果出现不文明词语系统会自动转换为 ***,这个就是使用了正则表达式技术,将那些不文明词语通过正则表达式进行匹配,当检测到时就过滤掉。 下面 网易邮箱 的注册案例更能体现出正则表达式的运用。
3. 正则表达式的组成
正则表达式是由元字符或者限定符组成的一个式子。说到这里,我们在学习正则表达式之前一定要知道元字符和限定字符是什么,在这里我简单的总结一下常用的元字符以及限定字符。
元字符
. 表示除了\n以外的任意一个单个字符
[ ] 表示范围;另一个含义: 把正则表达式中元字符的意义干掉 [.] 就是一个.
() 分组,提升优先级
| 或者
* 表示0-多次
+ 表示1-多次
? 表示0-1次
限定字符
{0,} 表示0-多次,和*一样
{1,} 表示1-多次,和+一样
{0,1} 表示0-1次,和?一样
{4} 表示前面的表达式出现了4次
^ 表示的是以什么开始或者是取非(取反)
$ 表示的是以什么结束
\d 表示数字中的一个
\D 表示非数字
\s 表示空白符
\S 表示非空白符
\W 表示特殊符号
\w 表示非特殊符号 _
\b 表示单词边界
4. 如何写正则表达式
经验: 1.找规律 2.不要过于追求完美
下面我们将通过几个小练习来熟悉一下正则表达式的基本写法:
//1.身份证号的正则表达式 15位或18位
([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX])
//2.座机号码的正则表达式 010-19876754 0431-87123490
[0-9]{3,4}[-][0-9]{8}
\d{3,4}[-]\d{8}
//3.邮箱的正则表达式 必须要记住!!!
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}
总结:正则表达式在我们学习编程过程中很常用,所以我们要掌握好它,在学习时我们可以借鉴百度、MDN对正则表达式的讲解,最好将两者比对着去学习。当然,今后我们需要用到正则表达式时并不一定要亲自去写,直接搜索就有答案,我们之所以要花时间学习它也是为了搜索出来之后不至于看不懂。
最后介绍一款工具:W3Cfuns前端开发工具箱 ----- 里面有各种正则表达式的分类,使用时直接点击需要的就直接生成了。