小编Adi*_*tya的帖子

将Java正则表达式的第1组替换为替换整个正则表达式

我有一个只有一个组的正则表达式模式.我需要在模式后面的输入字符串中查找文本并仅替换匹配组1.例如,我有正则表达式模式和要应用的字符串,如下所示.替换字符串是"<---->"

Pattern p = Pattern.compile("\\w*(lan)\\w+");
Matcher m = p.matcher("plan plans lander planitia");
Run Code Online (Sandbox Code Playgroud)

预期的结果是

plan p<--->s <--->der p<--->itia
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法

    String test = "plan plans lander planitia";
    Pattern p = Pattern.compile("\\w*(lan)\\w+");
    Matcher m = p.matcher(test);
    String result = "";
    while(m.find()){
        result = test.replaceAll(m.group(1),"<--->");
    }
    System.out.print(result);
Run Code Online (Sandbox Code Playgroud)

这给出了结果

p<---> p<--->s <--->der p<--->itia
Run Code Online (Sandbox Code Playgroud)

另一种方法

    String test = "plan plans lander planitia";
    Pattern p = Pattern.compile("\\w*(lan)\\w+");
    Matcher m = p.matcher(test);
    String result = "";
    while(m.find()){
        result = test.replaceAll("\\w*(lan)\\w+","<--->");
    }
    System.out.print(result);
Run Code Online (Sandbox Code Playgroud)

结果是

plan <---> <---> <--->
Run Code Online (Sandbox Code Playgroud)

我已经通过了 …

java regex

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×1

regex ×1