我有一个改变的要求AssemblyVersion
在新的构建上。我用java代码来做string.replaceAll(regexPattern,updatedString);
此代码适用于正常的正则表达式模式,但我无法在此模式中使用非捕获组。我想使用非捕获组来确保我不会捕获除所需模式之外的模式。这是我尝试过的代码:
String str="[assembly: AssemblyVersion(\"1.0.0.0\")]";
str=str.replaceAll("(?:\\[assembly: AssemblyVersion\\(\"\\d\\.\\d\\.)?.*(?:\"\\)\\])?", "4.0");
System.out.println(str);
在这里,我想匹配字符串[assembly: AssemblyVersion(int.int)]
并仅替换次要版本。
预期结果是[assembly: AssemblyVersion("1.0.4.0")]
,但我得到的结果是4.04.0
.
有人可以帮我解决这个问题吗?
为什么不使用前瞻/后顾呢?
它们是非捕获的,并且可以在这里轻松工作:
str = str
.replaceAll(
"(?<=\\[assembly: AssemblyVersion\\(\"\\d\\.\\d\\.).*(?=\"\\)\\])",
"4.0"
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)