【发布时间】:2013-03-29 09:29:12
【问题描述】:
我想知道是否有办法从正则表达式生成随机字符串,例如:
/[a-z0-9]{5}/.to_s
#=> "dsar3"
我找到了randexp (https://github.com/benburkert/randexp),但它似乎不适用于上面这样的基本示例,无论如何我觉得它被遗弃了。
有人吗?
【问题讨论】:
-
@iAmRubuuu 这不是真正随机的,而是由模式决定的。
-
它需要一些基本的约束,对吧?我的意思是,没有办法生成与
/.*/匹配的随机正则表达式,因为所涉及的字符数可以是 0 到无限之间的任意长度。 number 个字符也应该是随机的,还是我们应该尝试从无限集合中随机选择一个值?或者你是在建议一个约束,其中正则表达式不能允许 * 或 + 之类的东西(就像你的例子一样)? -
另外,如果你在正则表达式上有
.to_s提供一个随机匹配的字符串,那么对于下一个看到该代码的开发人员来说,这将是一个非常严重的问题。