0

我想在 ruby​​ 代码中放置Sharp而不是密码

puts "        found password: #{pass.tr('?','#')}"

我需要输出与密码中的字符一样多的尖锐“#”字符。

怎么做才对?

4

1 回答 1

1

该方法.tr旨在交换特定字符,您不能进行通配符匹配。即使您将其扩展为涵盖许多字符,也存在您遗漏或忘记系统密码​​中允许的特殊字符的风险。

你所拥有的一个简单的变体是使用.gsub

pass.gsub(/./,'#')

这使用正则表达式来查找要交换的字符组。简单的正则表达式/./匹配任何单个字符。关于正则表达式的Ruby 核心文档包括一个简短的介绍,以防您以前没有经常使用它们。

于 2014-04-15T05:54:06.397 回答