基于正则表达式的随机文本生成器

Par*_*ife 27 regex

我想知道是否有软件,给定正则表达式,当然还有一些其他约束,如长度,产生始终匹配给定正则表达式的随机文本.谢谢

Wil*_*ger 20

Xeger有能力做到:

String regex = "[ab]{4,6}c";
Xeger generator = new Xeger(regex);
String result = generator.generate();
assert result.matches(regex);
Run Code Online (Sandbox Code Playgroud)

  • 根据使用的正则表达式,随机性将会出现偏差.例如,正则表达式'[a-yZ]'将生成比其他字母多26倍的'Z'.请参阅http://code.google.com/p/xeger/wiki/XegerLimitations (3认同)

Jay*_*nek 12

所有正则表达式都可以表示为无上下文语法.并且已经一个很好的算法用于从给定长度的任何CFG产生随机句子.所以将正则表达式上转换为cfg,应用算法,并且wham,你已经完成了.


Sjo*_*erd 10

是的,存在可以为正则表达式生成随机匹配的软件:


Pis*_*tos 8

查看RandExp Ruby gem.尽管只是以有限的方式,它可以满足您的需求.(它不适用于所有可能的正则表达式,只有符合某些限制的正则表达式.)


fen*_*ent 8

如果您需要Javascript解决方案,请尝试使用randexp.js.