String类的正则表达式操作:
String reg="\d*";
1.整个字符串是否匹配: String matches();
2.切割:String split();
3.替换 String replace
3.取匹配子串
简单常用的正则表达式:
并集:[a-d[m-p]] a到d或m到p
交集:[a-z&&[def]] d,e或f
[a-z&&[^bc]a到z,除了b和c
\d 数字 0-9
\D非数字
\s空白,包含: \t \n \x0b \f \r
\S非空白
\w 单词字符 a-zA-Z_0-9
\W
\b 单词前后的边界
正则表达式应用:
组:同一个表达式中,在()内的为一组,组会自动编号,从1开始。取组内内容方法:\组号 用于调用第n组的结果。
应用举例:
叠词切: judhHHjdfkkknjh 按HH和kkk切
分析:后一位再调用前一位的结果。
切割正则表达式: (.)\\1+
结果: judh jdf njh
怎样看有几组:看左括号
((())())为四组
第一左括号为第一组......
叠词替换成单个字母:
分析:在替换中用$获得组内容,编号从1开始
String str1 ="juhkkuhjoooodf";
str1.replaceAll("(.)\\1+","$1");
取子串:找出三个字母的单词
String str="how are you ,good morning";
String reg="\\b[0-9]{3}\\b"
Pattern patter = Pattern.compile(reg);
//匹配器
Matcher matcher = patter.matcher(str);
while(m.find()){
System.out.println(m.group());
System.out.pringln(m.start+""+m.end()); 该子串在字符串中的开始位置和结束位置
}