如果我定义一个groovy变量
def x = "anish$"
它会给我带来错误,修复是
def x = "anish\$"
除了“$”之外什么是需要反斜杠的黑名单字符,是否有一个列出保留字符的Groovy引用。大多数“语言规范”都提到了这些细节,但我没有在Groovy语言spec中看到它(许多“TODO”评论)。
答案 0 :(得分:27)
只需使用单引号:
def x = 'anish$'
如果这是不可能的,那么唯一会导致问题的是$
,因为这是GString
使用的模板字符(参见GString部分on this page - - 大约一半下来)
显然,反斜杠char也需要转义,即:
def x = 'anish\\'
答案 1 :(得分:8)
您可以使用八进制表示。字符$表示八进制的044,然后:
def x = 'anish\044'
或
def x = 'anish\044'
例如,在Java中,我确实使用了这样的:
def x = 'anish\044'
答案 2 :(得分:2)
来自 tim_yates 的解决方案在某些情况下不起作用,例如:在贾斯珀的报告中。
因此,如果具有$
符号的所有内容仍然需要被解释为某个变量(${varX}
),例如在
"xyz".replaceAll("^(.{4}).{3}.+$", "$1...")
然后只需将美元符号设为单个连续字符'$'
,例如
"xyz".replaceAll("^(.{4}).{3}.+"+'$', '$'+"1...")
答案 3 :(得分:2)
这可能是一种便宜的方法,但以下内容适用于我。
def x = "anish" + '$'