String regx = "\\d+"; //正则表达式
Pattern p = Pattern.compile(regx);
String testString = "hello 008";
Matcher m = p.matcher(testString);
//split
p = Pattern.compile("\\s");
p.split(testString); //[hello]
//match 匹配整个字符串
Pattern.matches("\\d+", testString); //true
m.matches(); //true;
//find 匹配部分字符串
testString = "hello 007 and 008";
// regx: "\\d+"
m.find(); //true;
m.group(); // or m.group(0), "007"
m.start(); // 6
m.end(); // 9
//循环查找
while(m.find()){
System.out.println(m.group());
} // "007" "008"
//捕获分组
//"((\\w+) (\\d+))(?:.*)"
//(?:)非捕获分组
m.find();
m.groupCount() //3, group(0)和非捕获分组不计数在内
m.group(0) //"hello 007 and 008"
m.group(1) //"hello 007"
m.group(2) //"hello"
m.group(3) //"007"
m.start(3) //6
m.end(3) //9
//替换
//"hello 007 and 008"
// "(\\d+)"
m.replaceFirst("$1 , 9527 "); // "hello 007, 9527 and 008"
m.replaceAll("9527"); //"hello 9527 and 9527"