java正则表达式婚配操作

java正则表达式匹配操作
在对字符串的一些处理,要用正则表达式。下面是java中使用正则表达式的简单实现示例:
1、其中主要用到两个类,即:java.util.regex.Pattern和java.util.regex.Matcher。
String str="sdfj343sa j ks 4 42  32 sss";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
//匹配一次
matcher.find();
System.out.println(matcher.group()); //结果:343
//全部匹配
/*while(matcher.find()){
System.out.println(matcher.group());
}*/
结果:
343
4
42
32

注意执行顺序:必须先调用matcher.find()再调用matcher.group(),否则会出现 java.lang.IllegalStateException: No match found异常(如果matcher.find()返回false,也会出现此异常)。

2、字符串匹配替换:
String str="a2b33c56d7abcd";
str=str.replaceAll("\\d+","A");
则str="aAbAcAdAabcd";
说明:
(1)replaceFirst(regex, replacement)将字符串里,第一个与模式相匹配的子串替换成replacement。
(2)replaceAll(regex, replacement),将输入字符串里所有与模式相匹配的子串全部替换成replacement。
(3)Matcher.appendReplacement(StringBuffer, replacement)对StringBuffer进行逐次替换,这是个非常重要的方法,从而实现更强大的替换功能。调用完appendReplacement之后,为了把剩余的字符串拷贝回去,必须调用
matcher.appendTail(StringBuffer)。