正则表达式

\b 匹配字符串里hi 可以过滤him等词 例如\bhi\b。
. 匹配除了换行符以外的任意字符
* 指定他前面的字符可以使用任意次数
.* 表示匹配除了换行符之外的字符任意次 例如:\bhi\b.*\bLucy\b
\d 匹配一位数字 例如:012-26602565 0\d\d-\d\d\d\d\d\d\d\d
注意:0\d{2}-\d{8} 匹配省略写法 {}里的数字 表示重复多少次


\s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
\w 匹配字母或数字或下划线或汉字等。
\ba\w*\b 匹配以字母a开头的单词——先是某个单词开始处(\b),
然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,
不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。
注意:* 和 + 的区别
^ 匹配字符串的开头
$ 匹配字符串结尾
^\d{5,12}$ 匹配 5到12位数的QQ号码

注意:字符转义;
如果你想超找元字符本身,那么就需要转义。例如:\. \* 等
查找\ 就得用 \\
字符类:
\d匹配数字和[0-9]意思是一样的
[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。

复杂\(?0\d{2}[) -]?\d{8} 可以匹配
(010)88886666,或022-22334455,或02912345678等
解析:首先是一个转义字符\(,它能出现0次或1次(?),然后,
是一个0,后面跟着2个数字是一个0,
后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,
它出现1次或不出现(?),最后是8个数字(\d{8})

| 分支匹配
0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种,
以连字号分隔的电话号码

向后引用 \1
\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。
注意:\1代表分组1匹配的文本

posted @ 2016-04-07 10:34  hellohyi  阅读(145)  评论(0编辑  收藏  举报