正则表达式(Regular Expression)

一、什么是正则表达式?

正则表达式(Regular Expression)是一种处理字符串匹配的语言

正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,对匹配到的子串进行“取出”或“替换”操作

二、正则表达式的应用

正则表达式在实际开发过程中非常实用,能够快速解决一些复杂的字符串处理问题,可以分为以下几类:

1、数据验证

比如,你要验证一个字符串是否是正确的Email,Telphone,Ip等,使用正则表达式是非常方便的

2、内容查找

比如,你要抓取一个网页的图片,那么你肯定要找到<img>标签,这时实用正则表达式可以精准的匹配到

3、内容替换

比如,你要把手机号码中间四位数字隐藏掉变成这种模式,123****8901,那么采用正则表达式也会很方便

三、正则表达式有哪些内容

1、正则表达式的几个重要概念

    1)子表达式:在正则表达式中,如果使用“()”括起来的内容,称之为子表达式

    2)捕获:子表达式匹配到的结果会被系统放到缓冲区中,这个过程,我们称之为捕获

    3)反向引用:我们使用“\n”,其中n是数字,表示引用之前某个缓冲区之间的内容,我们称之为“反向引用”

2、数量限定符

X+             表示:1或多个

X*             表示:0或多个

x?              表示:0或1个

x{n}          表示:n个

X{n,}         表示:至少n个

x{n,m}       表示:n至m个,贪婪原则,会尽可能匹配多个;如果在后面加个?,则为非贪婪原则

注:X表示要查找的字符

3、字符限定符

\d              表示:匹配一个数字字符,[0-9]

\D              表示:匹配一个非数字字符,[^0-9]

\w              表示:匹配包括下划线在内的单词字符,[0-9a-zA-Z]

\W             表示:匹配任何非单词字符,[^0-9a-zA-Z]

\s               表示:匹配任何空白字符,空格,回车,制表符,

\S               表示:匹配任何非空白字符

.                 表示:匹配任何单个字符

此外还有如下几种:

范围字符:[a-z]、[A-Z]、[0-9]、[0-9a-z]、[0-9a-zA-Z]

任意字符:[abcd]、[1234]

非在内的字符:[^a-z]、[^0-9]、[^abcd]

4、定位符

^               表示:开头标识

$               表示:结尾标识

\b              表示:单词边界

\B              表示:非单词边界

5、转义符

\                用于匹配某些特殊字符

6、选择匹配符

|                可以匹配多个规则

7、特殊用法

(?=)     正向预查:匹配以指定内容结束的字符串

(?!)    负向预查:匹配不是以指定内容结束的字符串

(?:)    不把选择匹配符的内容放到缓冲区

posted on 2014-08-07 12:40  你又跑调了  阅读(405)  评论(0编辑  收藏  举报