A. java replaceAll 正则表达式的用法是什么
String a = "2016-06-24 10:33:20";
String b = a.replaceAll("[-\s:]", "");
System.out.println(b);
跟你简单说明下
正则表达式中[]中的内容表示匹配其中任何一个
s 表示匹配任何不可见的空字符,但是在java中需要在前面再加一个转义字符才能生效
B. java中用replaceAll来替换除了指定参数以外的所有字母,这个带参数的正则表达式怎么写
o.replaceAll("[^"+"p"+"]","*")这种就行了吧
C. java用正则表达式判定特殊字符是否,存在就替换的问题
String的replaceAll方法可以使用正则表达式进行搜索并替换,但不改变原字符串,如果需要改变原字符串,则需要用赋值语句:
ss=ss.replaceAll("正则表达式","替换内容");
比如将"aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp"里的[{等特殊符号去掉:
ss=ss.replaceAll("\W","");
D. java正则表达式怎么定义只替换中间的字符
可以使用分组来完成,替换字符串中使用$1、$2、$3……可以获取对应组的匹配结果。如果前后的字符串是固定的那更简单,直接在替换的时候写上就好了。
因为String的replaceAll就是使用的正则表达式所以示例直接使用的String的替换,Pattern的替换同理。
publicclassDemo{
publicstaticvoidmain(String[]args){
Stringstr="aa文字1bb哈哈cc测试dx,测试字符串aa1234bb";
//替换aa、bb之间的字符串为"成功"
Stringstr1=str.replaceAll("aa.*?bb","aa成功bb");
System.out.println(str1);
//替换aa、bb之间的字符串为"成功"
Stringstr2=str.replaceAll("(aa).*?(bb)","$1成功$2");
System.out.println(str2);
//替换小写字母之间的字符串为"成功"
Stringstr3=str.replaceAll("([a-z]+).*?([a-z]+)","$1成功$2");
System.out.println(str3);
}
}