我需要用参数的值替换 groovy 中特定字符之后的所有内容
我的字符串是:
env.APP_VERSION="1.9"
我想将 = 符号后的所有内容替换为某个参数的值,我们将其称为 $ PARAM 。
我能够在=号之后修剪所有内容,
但不能替换它...
result = result.substring(0, result.indexOf('APP_VERSION='));
任何帮助将不胜感激。
答案 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"' )