/*
* replaceAll():
* 格式:
* 原始字符串.replaceAll(正則,"替換新內容");
* 將原始字符串中,與所有正則表達式匹配的地方,都進行替換,
* 返回一個新字符串
*/
public class TestReplaceAll {
public static void main(String[] args) {
//1.基本用法
String str = "bbb,ccc,ddd,eee";//將所有逗號替換爲空格
String r1 = str.replaceAll(","," ");
System.out.println(r1);
//只替換第一個匹配結果
System.out.println(str.replaceFirst(","," "));
//2.貪婪模式 +,.,?它們會儘可能多的匹配內容,因此.+匹配內容爲:aaa</p><p>bbb</p><p>ffff
String str1 = "<p>aaa</p><p>bbb</p><p>ffff</p>";
//替換爲: bbb bbb
str1.replaceAll("<p>.+</p>","bbb");// .:表任意
System.out.println(str1.replaceAll("<p>.+</p>","bbb"));//實際只替換一個
//3.非貪婪模式
//+? 儘可能少的匹配
//*? 儘可能少的匹配
//?? 儘可能少的匹配
System.out.println(str1.replaceAll("<p>.+?</p>","bbb"));
System.out.println(str1.replaceAll("<p>.+?</p>","<p>bbb</p>"));
//3.替換中的分組
//例1:
//最終是希望結果爲:aaabbbffff
String str2 = "<p>aaa</p><p>bbb</p><p>ffff</p>";
//$:用括號分組,用$1表示要替換第一組的內容,即第一個()內的內容
System.out.println(str1.replaceAll("<p>(.+?)</p>", "$1"));
System.out.println(str1.replaceAll("<p>(.+?)</p>", "<a>$1</a>"));
//替換中的分組
//例2:
String str3 = "marry xing";//=>xing marry
str3.replaceAll("(.+?) (.+)", "$2 $1");
System.out.println(str3.replaceAll("(.+?) (.+)", "$2 $1"));
System.out.println(str3.replaceAll("(.+?)\\s(.+)", "$2 $1"));
}
}
replaceAll()用法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.