我想要替换这两个示例中"name“节点的值。我使用regex group来匹配并替换它。分组工作正常,但替换不起作用。
input 1
<xml
<user:address>.../</user:address>
<user:name>foo</user:name>
</xml>
input 2
<xml
<user:address>.../</user:address>
<street:name>bar</street:name>
</xml>
private static final String NAME_GROUP = "name";
public static final Pattern pattern = Pattern.compile("<.*:name>" + "(?<" + NAME + ">.*)</.*:name>");
final Matcher nameMatcher = pattern.matcher(str);
final String s = nameMatcher.find() ? nameMatcher.group(NAME_GROUP) : null;
System.out.println(s);
//foo
//bar
现在,当我替换掉
String output = nameMatcher.replaceFirst("hello")
I get
hello</xml>
虽然我对以下内容有所期待
<xml
<user:address>.../</user:address>
<user:name>hello</user:name>
</xml>
对于这两个示例。为什么组在工作,而不是替换?
https://stackoverflow.com/questions/56228346
复制相似问题