正则表达式(上篇)
2013-08-03 21:26
369 查看
写在最前面的话
已经有近2个星期没有更新博客了,前期一直在培训、考核以及熟悉项目组项目,想起前两天在园子里学习到了一个新词语——“不明觉厉”,说句实话,我目前就处于这个状态,只要是别人知道的某个非常牛东西就算我一点也不明白也会非常厉害,感觉这个状态可能要持续好久厄!终于到了周末,好好休息下,顺便写点东西、、、、今天写点关于正则表达式的知识
正则表达式小知识
对于正则表达式,我们必须理解一点:正则表达式是对字符串操作的逻辑公式,我们可以使用它构建一个规则,然后验证某字符串是否满足该规则(也就是我们常会说匹配),因此我们可以将它当作一个工具来使用。同时正则表达式操作的对象主要是文本,所以但凡与文本相关的逻辑操作,我们都可以尝试用正则试试。其实正则这个东东也很令人头疼,写错一点点结果就会不对,而且表达式不易记住,有点坑。不过我们不能因为它的缺点而放弃它的学习对吧,它在很多地方都有广泛使用,下面我们就进入学习下吧!正则表达式怎么写?
由于正则表达式这个东东是属于那种实用型的知识,用实例讲解更易理解,毕竟看到效果嘛!!!示例一:
var regx = new RegExp("C"); console.log(regx.test("ABCD"));
上述例子我们定义了一个最简单的正则表达式regx,它的目的就是匹配任意字符串中是否含有“C”字符,输出结果为true,如果我们将C改为E,则结果为false
示例二:
var regx = new RegExp("ello","gi"); var test = "hello,my name is ello !".match(regx); console.log(test);
上述例子结果为["ello",
"ello"],我们可以看到匹配了两个ello,一个是hello中的ello,另一个是单独的ello,假若我没有加上第一句中的第二个参数gi,那么的得到的结果就是["ello"],因为如果我不加gi,正则表达式默认是匹配到第一个满足条件的结果就终止,使用gi参数就是设置正则为全局匹配。
示例三:
在写示例三之前我必须首先告诉大家几个常用的元字符:
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
接下来写一个匹配区号只有3位,号码位数为7位的的电话号码的正则:
^\(?0\d{2}[) -]?\d{7}$ //注意,红色块显示的是三个字符 )、空格、-
我们来理解一下下:首先我们是我们的正则开始,接着是一个转义字符,允许重复一次或零次,然后匹配0,接着重复数字两次,紧接着出现一对[ ],出现里头三个字符其中的一个或不出现,最后匹配7个数字,例如这个正则表达式可以匹配027-8576812;(027)9676143;02789780098等等
示例四:
好吧现在给一个我们经常用的邮箱验证正则:
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
将这个正则分解开好看多了,当然啦,这个正则表达式是最通用的那种啦,我们常见的其中还会有限定条件。
示例五:
^(\d{1,3}\.){3}\d{1,3}$
//IP地址
^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$
//18位***号码
最后需要注意点是我们如果需要匹配的字符中有元字符,我们需要使用转义字符"\"
弱弱的结尾了、、、
今天就到这里吧,接下来的下篇我会详细的写点关于正则的示例,进一步理解正则表达式,包括分支分组以及复杂的正则理解和写出自己实际需要的正则表达式。说句实话,正则表达式就是个怪异的语言,需要多加理解和运用,当然咯好多我也木有记住,忘记了总是得去查!
------如果你觉得此文对你有所帮助,别忘了点击下右下角的推荐咯,谢谢!------
相关文章推荐
- ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]
- 正则表达式八道练习题
- Magento安装OneStepCheckOut一步支付插件--上篇
- Maven多模块+Dubbo+Zookeeper流程,详细配置文件,参照上篇文章
- 正则表达式记忆
- 续接上篇<Ovirt环境部署手册(barron测试通过)>
- 正则表达式
- (接上篇)反编译两种可执行文件
- 正则表达式
- Spring源码分析:AOP源码解析(上篇)
- Java常用正则表达式工具类
- 正则表达式
- IBM的LPI复习资料之LPI101-Topic103 :GNU和Unix命令(7)使用正则表达式搜索文本文件
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
- 正则表达式
- 请问这个「 (?<=<(\w+)>).*(?=<\/\1>) 」正则表达式是什么意思呢?
- 太有才了!街头创意涂鸦手绘图片欣赏【上篇】
- 坚持#第245天~正则表达式
- 正则表达式语法
- 正则表达式