【发布时间】:2014-04-15 05:35:23
【问题描述】:
我想在 ruby 代码中输入Sharp's 而不是密码
puts " found password: #{pass.tr('?','#')}"
我需要输出与密码中的字符一样多的尖锐“#”字符。
怎么做才对?
【问题讨论】:
我想在 ruby 代码中输入Sharp's 而不是密码
puts " found password: #{pass.tr('?','#')}"
我需要输出与密码中的字符一样多的尖锐“#”字符。
怎么做才对?
【问题讨论】:
.tr 方法用于交换特定字符,不能进行通配符匹配。即使您将其扩展为涵盖许多字符,也可能会遗漏或忘记系统密码中允许的特殊字符。
您所拥有的一个简单变体是改用.gsub:
pass.gsub(/./,'#')
这使用正则表达式来查找要交换的字符组。简单的 Regexp /./ 匹配 any 单个字符。 Ruby core documentation on regular expressions 包含一个简短的介绍,以防您以前没有经常使用它们。
【讨论】: