【特殊字符】
\d //数字0–9 (由一位数字组成的字符串)
\D //任意一个非数字字符
. //任意一个字符
\s //空白字符 空格 tab 回车 等
\S //非空白字符
\w //表示所有单词字符 包括0-9 26个英文字母和 _
\W //表示非单词字符
【表示范围的符号】
- //几次都行
- //至少一次
? //至多一次(0或1)
[] 开始和结束的位置
{} 出现的次数
() 表示子表达式开始和结束的位置
\d{6} 必须为6次数字
\d{6,10} 6至10位,包括10位数字
\d{6,} 至少10位
[0-9] 等同于\d
[0-9]{2} 数字出现2次
[a-z]{6} a-z出现6次
[a-zA-Z]{6} 6个字母忽略大小写
[abc] abc任选一个
1 以A或者B开头
[^AB] 表示AB不能为开头
[a-z&&[def]] 表示a-z和def的交集 即 def
“hi." 和 “high” 匹配
"ahi.” 和 “ahigh” 匹配
"a.hi.*"和 “axhigh” 匹配
\b --------\W表示的字符可以做单词边界
但 “a.\bhi." 和 “axhigh” 不匹配
"a.\bhi.” 和 “a high” 就匹配 为什么?
因为\b表示单词的边界 空格把 a 和high分成了两个单词
也就是说 high是另一个单词的开始 处在边界上
所以就匹配 而x不会把a和high分成两个单词
/*
匹配:实际上使用的是String中的boolean matches(String regex)方法 ,判读一个字符串是否匹配某个正则表达式
切割:实际上使用的是String中的String[] split(String regex)
替换:实际上使用的是String中的String replaceAll(String regex, String replacement)
把字符串中符合正则表达式的都替换为第二个参数
获取:把正则表达式转换成Pattern类型的对象