正则

正则表达式

[abc] a或b或c任意一个字符
[^abc] 任何单个字符,除了a,b,c 10是两个字符返回false
[a-zA-Z] a-zA-Z中的任意一个字符
[a-d[m-p]] a-d,m-p中的任意一个字符
[a-z&&[def]] a-z和def的交集(即def)
[a-z&&[^bc]] a-z和除了bc之外的交集(即a-z内bc之外的字符)
[a-z&&[^m-p]] a-z内除了m-post的字符

String regex = "[abc]";
System.out.println("a".matches(regex));

. 任何字符
\d 数字[0-9] \代表转义字符,如果想要表示\d,需要些\d
\D 非数字[^0-9]
\s 空白字符[ \t\n\x0B\f\r]
\S 非空白字符[^\s]
\w 单词字符[a-zA-Z_0-9]
\W 非单词字符[^\w]

X? X出现一次或一次也没有
X* 零次或多次
X+ 一次或多次
X{n} 恰好n次
X{n,} 至少n次
X{n,m} 至少n次,不超过m次

String regex = "\\d";
String s = "woaiheim1a";

s.replaceAll(regex,""); //替换
String[] arr = s.split(" ");//用空格切割;
String regex = "(.)\\1(.)\\2"; //1代表第一组又出现一次,2代表第二组又出现一次
String regex2 = "(.)\\1";
"aaa".matches(regex2);

Pattern p = Pattern.compile("a*b");    //获取到正则表达式
Matcher m = p.marcher("aaaab");    //获取匹配器;
boolean b = m.matches();    //是否能匹配,匹配就返回true;
//上面的和下面的结果一样
"aaab".matches("a*b");

 boolean b1 = m.find();//找下一个匹配的,有点像指针
 String s1 = m.group();//返回匹配的字符串

while(m.find()){
    System.out.println(m.group());
}