String str = " <node id='0' name='根节点'> <node id='0001' name='根节点1'> </0001node> </0node>";
System.out.println(str);
String node2 = " <node id='0002' name='根节点2'> </0002node>";
String reg = "( <node.*?>)(.*)( </0node>)";
str = str.replaceAll(reg, "$1$2" + node2 + "$3");这样吗?
System.out.println(str);
String node2 = " <node id='0002' name='根节点2'> </0002node>";
String reg = "( <node.*?>)(.*)( </0node>)";
str = str.replaceAll(reg, "$1$2" + node2 + "$3");这样吗?
String str = " <node id='0' name='根节点'> <node id='0001' name='根节点1'> </0001node> </0node>";
String node2 = " <node id='0002' name='根节点2'> </0002node>";
String reg = "( <node.*?>)(.*)( </0node>)";
str = str.replaceAll(reg, "$1$2" + node2 + "$3");
System.out.println(str);
}输出:
<node id='0' name='根节点'> <node id='0001' name='根节点1'> </0001node> <node id='0002' name='根节点2'> </0002node> </0node>
String str = "<node id='0' name='根节点'> <node id='0001' name='根节点1'> </0001node> </0node>";
String node2 = " <node id='0002' name='根节点2'> </0002node>";
String s = "(<node[^>]*>)(.*)(</0node>)";
Matcher m = Pattern.compile(s).matcher(str);
if(m.matches()){
System.out.println(m.group(1)+m.group(2)+node2+m.group(3));
}
String node2 = " <node id='0002' name='根节点2'> </0002node>";
String reg = "(<node[^>]*>)(.*)( </0node>)";
str = str.replaceAll(reg, "$1$2"+node2+"$3");
System.out.println(str);
Pattern p = Pattern.compile(_regexp);
Matcher m = p.matcher(str);
boolean b = m.matches();
总返回false,
直接
str = str.replaceAll(_regexp, "$1$2"+nodes+"$3");
是可以替换的呢?
public static void main(String[] args) { String str = "<XML><node id='0' name='备品备件字典库'></0node>";
String _regexp = "(<node id='0' name='.*?'>)(.*?)(</0node>)";
String nodes = "<node id='0001' name='信息设备'></0001node>";
Pattern p = Pattern.compile(_regexp);
Matcher m = p.matcher(str);
boolean b = m.matches(); if (b){
str = str.replaceAll(_regexp, "$1$2"+nodes+"$3");
System.out.println(str);
}else{
System.out.println("false");
} System.out.println(str); }
String _regexp = ".*?(<node id='0' name='.*?'>)(.*?)(</0node>).*?";