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)(表示前面不能匹配)