当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《基于正则表达式的随机文本生成器》经验,为你挑选了5个好方法。

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



1> Wilfred Spri..:

Xeger有能力做到:

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


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

2> Jay Kominek..:

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



3> Sjoerd..:

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

Exrex,Python

Pxeger,Javascript

正则表达式,Haskell

Xeger,Java

Xeger,Python

Generex,Java

rxrdg,C#

String :: Random,Perl

regldg,C

paggern,PHP

ReverseRegex,PHP

randexp.js,Javascript

EGRET,Python/C++

MutRex,Java

票价,C#

rstr,Python

randexp,Ruby

goregen,Go

bfgex,Java

regexgen,Javascript

strgen,Python

随机字符串,Java

regexp-unfolder,Clojure

字符串随机,Haskell

rxrdg,C#

Regexp :: Genex,Perl

StringGenerator,Python

斯特兰德,去吧

regen,Go

雷克斯,C#

regexp-examples,Ruby



4> Pistos..:

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



5> fent..:

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

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有