你好,我正在尝试理解Java正则表达式替换。我有很多正则表达式和替换要应用于文件中的文本。我想读取正则表达式并在文本上应用替换。
例如,我想在以下示例中将text
替换为variable
。
import java.util.regex.*;
public class regex1{
public static void main(String args[]){
String s1 = "cat catches dog text";
Pattern p1 = Pattern.compile("\\s*cat\\s+catches\\s*dog\\s+(\\S+)");
Matcher m1 = p1.matcher(s1);
if (m1.find()){
System.out.println(m1.group(1));
s1 = m1.replaceFirst("variable $1");
System.out.println(s1);
}
else{
System.out.println("Else");
}
}
}
但我得到的输出是
text
variable text
有人可以解释一下Java中的group和replacement是如何工作的吗?如何获得正确的输出?