在groovy中,如何在不转义斜杠(\)和不插值的情况下指定多行字符串
在groovy中,如果希望多行字符串不带插值和转义,该怎么办 比如:在groovy中,如何在不转义斜杠(\)和不插值的情况下指定多行字符串,groovy,escaping,multiline,heredoc,Groovy,Escaping,Multiline,Heredoc,在groovy中,如果希望多行字符串不带插值和转义,该怎么办 比如: var1="hello hello" var2="""/ adakldjkadj\^mk as@da\kl#DFD#$# ${var1} d3&657\7fdsfsf /""" println var2; 打印内容应与原样完全相同,如: adakldjkadj\^mk as@da\吉隆坡#DFD#$#
var1="hello hello"
var2="""/
adakldjkadj\^mk
as@da\kl#DFD#$#
${var1}
d3&657\7fdsfsf
/"""
println var2;
打印内容应与原样完全相同,如:
adakldjkadj\^mkas@da\吉隆坡#DFD#$#
${var1}
d3&657\7FDSFSFSF 也就是说,${var1}尚未展开,不需要转义\并且它是多行字符串
那么,如何在GROOVY中分配这个HEREDOC字符串。这在bash脚本、ruby、perl等中是可能的 在ruby中,它表示为(注意分隔符字符周围的引号,如:“EOL”)
a=这是不可能的,请参见此处:使用单引号,您可以更接近,但仍然不是您想要的。它将不再扩展${var1}
对于\,它始终是用于特殊字符的java/groovy分隔符,因此您必须始终转义它
编辑:看起来他们正在为1.8版做这个,或者已经在1.8版了。我目前只运行1.7,因此无法测试或提供代码示例
使用三个单引号,如'
,而不是双引号,以避免多行字符串中的变量插值
a = <<'EOL'
adakldjkadj\^mk
as@da\kl#DFD#$#
yes ${var1}
d3&657\7fdsfsf
EOL