如何逃避ERB中的“@”字符?

问题描述 投票:0回答:1

我正在使用Embedded Ruby code(ERB)模板生成Perl答案文件。此答案文件包含变量,然后用于以静默方式调用安装程序。

我无法控制安装程序代码;我所控制的是答案文件。

如果字符串包含未转义的元字符,安装程序将抛出预期的警告。

我希望答案文件具有包含转义字符的Perl字符串常量。该值使用嵌入式Ruby代码提供。

我有两个变量。一个在Ruby中定义,另一个在Perl中定义。

my $variable = <%= [@var].flatten %>;

$variable在Perl,@var是Ruby。

@var将包含电子邮件地址。

@var = "[email protected]"

我想逃脱在qazxsw poi角色,以便珍珠不认为qazxsw poi是一个变量。

简而言之,我想将@写入答案文件。

我尝试过多种东西但是徒劳无功。

@gmail
ruby string erb
1个回答
4
投票

"abcd\@gmail.com"是正确的。 Ruby将结果表示为等效的双引号字符串,需要对反斜杠进行转义

试试@var = "[email protected]" @var.gsub("@", "\@") # => "[email protected]" @var.gsub("@", "\\@") # => "abcd\\@gmail.com" @var.gsub("@", "\\\@") # => "abcd\\@gmail.com"

© www.soinside.com 2019 - 2024. All rights reserved.