如何在Groovy字符串中转义${}

如何在Groovy字符串中转义${},groovy,Groovy,我有一个字符串S,比如“${abc}”,这里的${}是一个特殊的表达式,但是我想避免对表达式求值,并在Groovy中将S与“${abc}”逐字匹配 我运行S.matches(“\\$\{abc\\}”)将S与“${abc}”匹配。因为我想我需要用\来逃避${}。但它不起作用 有人知道如何做到这一点吗?不确定您的问题是什么,但以下直截了当的正则表达式很好: String s = '"${abc}"' assert s ==~ /"\$\{\w+\}"/ 您是否尝试过使用匹配器,例如def Mat

我有一个字符串S,比如
“${abc}”
,这里的
${}
是一个特殊的表达式,但是我想避免对表达式求值,并在Groovy中将S与
“${abc}”
逐字匹配

我运行
S.matches(“\\$\{abc\\}”)
将S与
“${abc}”
匹配。因为我想我需要用\来逃避${}。但它不起作用


有人知道如何做到这一点吗?

不确定您的问题是什么,但以下直截了当的正则表达式很好:

String s = '"${abc}"'
assert s ==~ /"\$\{\w+\}"/

您是否尝试过使用匹配器,例如
def Matcher=s=~/\$\{abc\}/
,其中s是您的字符串值,例如
def s='${abc}'
?谢谢,这就是我在使用双引号字符串
时想要的expression在它们内部,将发生字符串插值。在计算字符串时,Groovy将尝试用占位符表达式的值替换占位符表达式(在
${}
内部的任何内容)。由于没有定义abc变量,您将得到一个错误。您可以在官方的\\$\{abc\\}“导致错误。只有在您希望评估您的印象时,才应使用
。对于普通的旧字符串,您应该使用
谢谢您的解释