小编Pra*_*gam的帖子

如何在java中使用正则表达式非捕获组进行字符串替换

我有一个要求改变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);
Run Code Online (Sandbox Code Playgroud)

在这里,我想匹配字符串[assembly: AssemblyVersion(int.int)]并仅替换次要版本.

预期的结果是[assembly: AssemblyVersion("1.0.4.0")],但我得到了结果4.04.0.

有人可以帮我这个吗?

java regex automation

4
推荐指数
1
解决办法
1119
查看次数

标签 统计

automation ×1

java ×1

regex ×1