深入剖析正则表达式

                                            深入剖析正则表达式

      首先,我想问一个问题,为什么么需要正则表达式?

      如果我给你一篇文章,要你找出四个字母连续在一起的字串,而且这4个字母必须是第一位和第三位相同,第二位和第四位相同,怎么做到呢?

       如果用户要登录自己的电子邮箱,你如何去验证这些邮箱是否格式正确呢?

       这时就要用正则表达式了,正则表达式基本得到了所有语言的支持,如php,java,javascript,C,C#,C++等等。

       想要了解什么是正则表达式,我们先看看他的语法,毕竟从语法入手,知根知底的学起来是比较快的。

先看一个正则表达式的例子:(这里以javascript为例)

Var reg=/(\d)(\d)\2\1/gi

解释如下:

//:正则表达式就要写在这对斜杠里。

(/d)表示一个子表达式。

\2表示要反向引用第二个子表达式的内容,同理,\1自然就表示要反向引用第一个子表达式的内容。注意:子表达式指的是一个括号里面包含的内容。

比如这个正则表达式就可以识别7889这样的数字了。

想必经过这个例子,对正则表达式都有一个比较清晰的认识了,原来正则表达式不是想象中那么难,不过如此嘛,不过你想要真正的灵活运用正则表达式,还是必须去了解各种元字符的功能的。功能可以分为以下几种:

1:限定符:

       听名知义,用于指定前面的字符和组合连续出现多少次。举例如下:

        /A{3}/:表示连续出现三个A;

       /a{3,4}/:表示a至少出现3次,最多出现四次,那么如果这样一个字串iloveaaaassss这么个字串他是识别aaa呢还是aaaa呢?记住,javascript默认的是贪婪匹配原则,自然输出的就是aaaa咯。

       /a+/:表示a出现一次到任意多次。

       /a*/:表示a出现0次到任意多次。

2:字符匹配符

       /[a-z]/:表示a到z中任意一个字符,同理/[1-9]/大家该明白什么意思啦。

       /[^a-z]/:同上面的相反,表示可以匹配不是a到z的字符。

\d:这几个是特殊的:表示可以匹配任意一个数字。

\D:同上面相反。

\w:匹配任意英文字符,数字,下划线。

\W:同上面相反。

\s:匹配任意空白字符。

\S:同上面相反。

.:匹配\n自外的所有字符,但是如果仅仅匹配本身的话,\.这样就可以了。

3:转义符:

       需要用到转义符的字符如下:

       . * ( ) $ / \ ? [ ] ^ { }一共12个。

4:定位符:

/^peng/:这表示该字符串只能是以peng开头了哦,注意与/[^peng]/区分开哦。

/peng$/:这表示只能以这四个字符结尾。

5:选择匹配符。

       /(peng)|彭/:表示出现的是peng或者彭都可以的。

好了,想必大家对正则表达式已经有一定的了解了,不过要做到真正的熟练运用,怕还是要在项目中多多应用多多碰壁才能知道的。如果你想要看更多精彩的文章,可以访问我们公司的网站。作为最好的自贡网络公司,高质量的产品和分享经验共同进步一直是我们的原则。

转载于:https://www.cnblogs.com/bellapengjie/archive/2012/09/01/2666644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值