/*
* 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()用法
最新推荐文章于 2024-08-07 16:21:39 发布