replaceAll()用法

/*
 * 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"));


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值