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);
}
}