前端之家收集整理的这篇文章主要介绍了
如何生成与给定正则表达式匹配的随机字符串?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
重复:
07000
不,不是。我正在寻找一种简单而通用的方法,我可以实际实现。这比随机生成密码要困难得多。
我想创建一个采用正则表达式的应用程序,并显示与该表达式匹配的10个随机生成的字符串。它应该帮助人们更好地了解其正则表达式,并决定是否足够安全以进行验证。有人知道一个简单的方法吗?
一个明显的解决方案是写(或窃取)正则表达式解析器,但这似乎真的在我的头上。
我重复一遍,我正在寻找一种简单而普遍的方法来做到这一点。
编辑:蛮力的方法是不成问题的。假设随机字符串只是每秒[a-z0-9] {10}和100万次迭代,则需要65 years遍历所有10个字符串的空间。
将您的正则表达式解析为
DFA,然后
随机遍历DFA,直到最终达到接受状态,为每个转换
输出一个字符。每个步行都会产生一个与表达式匹配的新字符串。
这对于不是真正规则的“常规”表达式来说不起作用,例如具有反向引用的表达式。这取决于你的表达方式。