我正在为"A"生成一个8个字符的伪随机大写字符串."Z":
value = ""; 8.times{value << (65 + rand(25)).chr}
Run Code Online (Sandbox Code Playgroud)
但它看起来并不干净,并且它不能作为参数传递,因为它不是单个语句.要获得一个混合大小写的字符串"a".."z"加上"A".."Z",我将其更改为:
value = ""; 8.times{value << ((rand(2)==1?65:97) + rand(25)).chr}
Run Code Online (Sandbox Code Playgroud)
但它看起来像垃圾.
有没有人有更好的方法?
我想知道是否有办法从正则表达式生成随机字符串,如:
/[a-z0-9]{5}/.to_s
#=> "dsar3"
Run Code Online (Sandbox Code Playgroud)
我找到了randexp(https://github.com/benburkert/randexp),但似乎无法使用上面的基本示例,无论如何我觉得它被遗弃了.
任何人?