您的位置:首页 > 编程语言 > Java开发

java学习之路---正则表达式---学习笔记

2013-11-24 17:49 471 查看
1.标准字符集合(大小写意思相反)
\d代表所有数字

\w任意字母数字下划线

\s空白符,制表符

.所有的字符

2.自定义字符集合

[1234]匹配1,2,3,4任意数字

[^abcd]除了abcd,都匹配

[a-p]表示a到p

[a-f0-7]表示a到f,0到7
\d(10)前面的规则重复10此

\d(2,4)表示2-4位

a\d(1,)b表示a,b中间数字至少一个

a\d+b同样的意思

a\d*b和a\d(0,)表示a,b中间有0个以上的数字

a\d(0,1)b和 a\d?b一样的意思

\d{1,4}表示出现数字1或2或3或4次(贪婪模式)

\d{2,4}?表示出现数字2次就不找了本次了,就直接找下次了(非贪婪模式)

3.字符边界
^字符串开始的位置

$ 字符串结尾的位置

\b  匹配一个单词边界(左匹配右不匹配)

4.选择符与分组

选择符(|)

分组(())

邮箱的匹配

([\w-]+)@([\w-]+)(\.[a-zA-Z](2,5))(1,2)

匹配电话号码,手机号

0\d(2,3)-\d(7,8)(固话)

0\d(2,3)-\d(7,8)|(1[345678]\d(9))

5.反向应用(应用你所捕获的字符串)(一个括号就是一个应用,从左边第一个括号开始)

([a-z]{2})\1重复一次(gogo,toto)

匹配<p>hjkhjkhjkkhj</p>

<([a-zA-Z])>.+</\1>

6.模式修改符

(?i)[a-z](?=i)表示第一个?:开始不区分大小写,到?=i关闭不区分大小写,一般不用这种,用[a-zA-Z]就OK了

7.预搜索(是对位置的匹配)

搜索 going,只要go 

[a-z]+(?=ing)(表示go后面跟的是ing)
(?<= _)[a-z]+(表示以_开头)

(?!exp)(表示后面不能匹配)

(?!<=exp)(表示前面不能匹配)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: