1. 字符类
[abc] a,b或c
[^abc] 任何字符,除了a,b,c
[a-zA-Z] 所有字母
[a-d[m-p]] a-z或m-p(并集)
[a-z&&[def]] d,e,f(交集)
[a-z&&[^bc]] a-z,除了b,c [ad-z](减法)
[a-z&&[^m-p]] a-z,除了m-p [a-lq-z](减去)
2. 预定义字符类
. 任何字符
\d 数字[0-9]
\D 非数字[^0-9]
\s 空白字符[ \t\n\x0B\f\r]
\S 非空白字符[^\s]
\w 单词字符[a-zA-Z_0-9]
\W 非单词字符
3. 数量词
x? x一次或一次也没有,至多一次
x* x零次或多次
x+ x一次或多次,至少一次
x{n} x恰好n次
x{n,} x至少n次
x{n,m} x至少n次但不多于m次
4. 根据空格切割
String[] arr = st.split(" ");
5.正则表达式的替换和分组
//用空格代替字符串中的数字
String regex = "\\d";
String target = st.replaceAll(regex," ");
//分组
//()代表一组,()后面数字代表出现次数
String regex = "(.)\\1(.)\\2" 叠词
6. Matcher和Pattern
Pattern p = Pattern.complie("1[356789]\\d{9}");
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}