Java正则表达式替换xml字符串中的字符串

时间:2017-07-25 09:29:36

标签: java regex

我的字符串如下所示,我需要在输出中替换ref的值。

Input String:
 <sheet type="xl"><dimension ref="A1:W101"/></sheet>

Output String:
 <sheet type="xl"><dimension ref="A1:j202"/></sheet>

我尝试使用(?&lt; = \ b(ref =))。*(?= /&gt;),但它一直匹配到字符串的结尾。

任何人都可以帮助我,我怎样才能使用正则表达式来替换输出字符串之类的ref值。

1 个答案:

答案 0 :(得分:1)

您可以这样使用正则表达式:

String str = "<sheet type=\"xl\"><dimension ref=\"A1:W101\"/></sheet>";
String replaceBy = "A1:j202";

str = str.replaceAll("(ref=\")(.*)(\")", "$1" + replaceBy + "$3");
System.out.println(str);

这也有效:

str = str.replaceAll("(?<=\\b(ref=)).*?(?=/>)", "\"" + replaceBy + "\"");