gsub更换不当

时间:2016-08-12 15:28:13

标签: ruby

我正在尝试使用'#'替换电子邮件中的所有字母数字字符。使用gsub方法的字符,但Ruby在' @'之前插入一个反斜杠。字符。

E.g:

"john@doe.com".gsub(/[a-z0-9]/, "#")返回"###\#@###.###"而不是"####@###.###"

2 个答案:

答案 0 :(得分:8)

按预期返回"####@###.###",尝试:

puts "john@doe.com".gsub(/[a-z0-9]/, "#")

您在IRB / Pry中看到的是阻止#@被解释为字符串插值。

请参阅@Stefan下面非常有价值的评论。

答案 1 :(得分:3)

trgsub

puts "foo@bar.com".tr('a-zA-Z0-9', '#')
# >> ###@###.###