正则表达式(regular expression):一些用来匹配处理文本字符串。主要功能为搜索替换

一、基本的元字符

元字符

说明

.

匹配任意单个字符

|

逻辑或操作符

[]

匹配字符集合中的一个字符

[^]

对字符合集求非

-

定义一个区间(例如[A-Z])

\

对下一个字符转义

 

 二、数量元字符

元字符

说明

*

匹配前一个字符(子表达式)的零次或多次重复

*?

*的懒惰型版本

+

匹配前一个字符(子表达式)的一次或多次重复

+?

+的懒惰型版本

?

匹配前一个字符(子表达式)的零次或一次重复

{n}

匹配前一个字符(子表达式)的n次重复

{m, n}

匹配前一个字符(子表达式)至少m次且至多n次重复

{n, }

匹配前一个字符(子表达式)n次或更多次重复

{n, }?

{n, }的懒惰型版本

 

三、位置元字符

元字符

说明

^

匹配字符串的开头

\A

匹配字符串的开头

$

匹配字符串的结束

\Z

匹配字符串的结束

\<

匹配单词的开头

\>

匹配单词的结束

\b

匹配单词边界(开头和结束)boundary

\B

\b的反义

 

 四、特殊字符元字符

元字符

说明

[\b]

退格字符

\c

匹配一个控制字符

\d

匹配任意数字字符

\D

\d的反义

\f

换页符

\n

换行符

\r

回车符

\s

匹配一个空白字符

\S

\s的反义

\t

制表符(Tab字符)

\v

垂直制表符

\w

匹配任意字母数字字符或下划线字符

\W

\w的反义

\x

匹配一个十六进制数字

\0

匹配一个八进制数字

 

 五、回溯引用和前后查找

元字符

说明

()

定义一个子表达式

\1

匹配第一个子表达式;\2表示匹配第2个表达式,以此类推

?=

向前查找

?<=

向后查找

?!

负向前查找

?<!

负向后查找

?()

条件(if then)

?()|

条件(if then else)

 

 六、大小写转换

元字符

说明

\E

结束\L或\U转换

\l

把下一个字符转换为小写

\L

把后面的字符转换为小写, 直到遇见\E为止

\u

把下一个字符转换为大写

\U

把后面的字符转换为大写, 直到遇见\E为止

 

七、一些特例的正则匹配 

1.IP地址的正确匹配

  • 任何一个1位或2位数字

  • 任何一个以1开头的3位数字

  • 任何一个以2开头、第二位数字在0~4之间的3位数字

  • 任何一个以25开头、第3位数字在0~5之间的3位数字

2. HTML标题匹配(回溯匹配)

  • 保持前后一致,过滤掉错误的标签

 

3.邮件地址的匹配 

  • 可以有任意多个字符
  • 第一个字符必须是一个字母或数字字符

 

 4.url的匹配

  • 解决http和https同时匹配的问题