Groovy替换字符后的所有内容

时间:2018-12-02 13:06:55

标签: groovy

我需要用参数的值替换 groovy 中特定字符之后的所有内容

我的字符串是:

env.APP_VERSION="1.9"

我想将 = 符号后的所有内容替换为某个参数的值,我们将其称为 $ PARAM

我能够在=号之后修剪所有内容,

但不能替换它...

result = result.substring(0, result.indexOf('APP_VERSION='));

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

实际上,可能的解决方案之一是使用正则表达式。它应该包括:

  • (?<==)-=正向后看
  • .*-匹配所有字符(直到结尾)。

因此脚本如下所示:

src = 'env.APP_VERSION="1.9"'
PARAM = '"xyz"'
res = src.replaceFirst(/(?<==).*/, PARAM)

另一种解决方法是分割=上的字符串,然后“装入”结果字符串 来自:

  • 拆分结果中的第一个字符串。
  • =字符。
  • 您的替换字符串。

这一次脚本的处理部分应该是:

spl = src.split('=')
res = spl[0] + '=' + PARAM

答案 1 :(得分:0)

在不知道您的初衷的情况下,您有两种选择:

1)不要重新发明轮子并使用GString魔术:

String ver = '1.9'
String result = "env.APP_VERSION=\"$ver\""

2)使用一些正则表达式:

 result = result.replaceFirst( /APP_VERSION="[^"]+"/, 'APP_VERSION="something"' )