正则表达式

元字符: + *
\b 代表单词的开头或者结尾
^ 匹配字符串的开头
$ 匹配字符串的结尾
. 匹配除了换行符外的任意字符
\d 匹配一位数字
\s 匹配任意的空白符,包括空格符、制表符、换行符、中文全角空格等
\w 匹配字母、数字、下划线、汉字等

字符转义:
\. 匹配"."
\\ 匹配"\"

重复:
* 重复任意次数
+ 重复1次或者更多次
? 重复0或者1次
{n} 重复n次
{n,} 重复n次或者更多次
{n,m} 重复n到m次

 

字符类: 匹配没有预定义的字符集合即或者的关系

[aeiou] 匹配其中的任意一个元音字母
[.?!] 匹配其中的任意一个标点符号
[0-9] 匹配0-9的任意一个数字
[a-z0-9A-Z] 匹配任意字母或者数字
\(?0\d{2}[) -]?\d{8} 匹配(010)88886666,或022-22334455,或02912345678电话号码


分支条件: 满足其中任意一种规则都应该当成匹配
\d{5}-\d{4}|\d{5} 匹配5位数字,或者用连字号间隔的9位数字
注意如果写成\d{5}|\d{5}-\d{4}则只会匹配5位的邮编(以及9位邮编的前5位)


分组:想要重复多个字符或者对字表达式进行操作
(\d{1,3}\.){3}\d{1,3} 匹配1到3位的数字和点并重复3次,最后在加上1个1到3位的数字

 

反义: 查找不属于某个能简单定义的字符类的字符
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
\S+ 匹配不包含空白符的字符串。
<a[^>]+> 匹配用尖括号括起来的以a开头的字符串。

 

例子:
\bhi\b 匹配hi这个单词
\bhi\b.*\bluck\b 匹配单词hi后面跟着一个单词luck
0\d{2}-\d{8} 匹配0开头后面跟着两个数字然后是连接号"-",最后是8位数字
^\d{5,12}$ 匹配字符串是5到12个数字

posted @ 2014-03-20 14:57  海边菩提  阅读(202)  评论(1编辑  收藏  举报