我正在尝试使用'#'替换电子邮件中的所有字母数字字符。使用gsub
方法的字符,但Ruby在' @'之前插入一个反斜杠。字符。
E.g:
"john@doe.com".gsub(/[a-z0-9]/, "#")
返回"###\#@###.###"
而不是"####@###.###"
。
答案 0 :(得分:8)
按预期返回"####@###.###"
,尝试:
puts "john@doe.com".gsub(/[a-z0-9]/, "#")
您在IRB / Pry中看到的是阻止#@
被解释为字符串插值。
请参阅@Stefan下面非常有价值的评论。
答案 1 :(得分:3)
tr
比gsub
快
puts "foo@bar.com".tr('a-zA-Z0-9', '#')
# >> ###@###.###