我有一个只有一个组的正则表达式模式.我需要在模式后面的输入字符串中查找文本并仅替换匹配组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)
我已经通过了 …