matches("\\d{个数}") 规定数字的长度
数量词:
? 一次或者没有
* 零次或者多次
+ 一次或者多次
{n} 恰好n次
{n,} 至少n次
{n,m} 至少n次,不超过m次
字符类:
[1-9] 范围1到9
[a-zA-Z] 大小写字母,中间没符号间隔
[^abc] 任何除了abc的字符
[a-d[m-p]] a到d或者m到p(并集)
[a-z&&[def]] d、e或者f(交集)
预定义字符:
. 任何字符
\d 数字[0-9]
\D 非数字([^0-9])
\w 单词字符([a-zA-Z_0-9])
\W 非单词字符([^\w])
\s 空白字符([\t\n\XOB\f\r])
\S 非空白字符([^\s])
边界匹配器:
^ 行的开头
$ 行的结尾
\b 单词边界
\\b\\w{2}\\b 以两边空格为界,长度为2的单词
Pattern类:(正则表达式的编译表示形式)
Pattern.compile("表达式") 将给定的正则表达式编译到模式中,返回一个Pattern类对象P
P.matcher(要匹配的字符) 返回一个Matcher(新匹配器)
Matcher.find() 是否找到有符合的字符,返回boolean
Matcher.group() 返回符合的字符串
String中正则的使用:
String.matches("正则表达式") 匹配正则表达式
String.split("正则表达式")
(.)\\1 括号是一个分组,1为重复第一组
(.)(\\d)\\1\\2+ 有两组,1为重复第一组,2+重复第二组一个或者多个
String.replaceAll("正则表达式",字符串)
("\\d{3,}","#") 连续3个或以上的数字替换成“#”
("(.)\\1+","#") 重叠字符替换成“#”
("(.)\\1+","$1") 重叠字符换成单个($符意义是使用分组的字符)