反转正则表达式以生成数据

时间:2010-05-25 13:49:39

标签: regex algorithm

在其中一个StackOverflow播客(人们正在讨论用于测试数据库的数据生成的那个 - #11#12)中,Jeff提到了类似“反向正则表达式”的东西,它们被使用了正是出于这个目的:给定一个正则表达式,产生一个最终匹配所述正则表达式的字符串。

这整个概念的正确用语是什么?这是一个众所周知的概念吗?

4 个答案:

答案 0 :(得分:6)

Perl模块String::Random(在CPAN中)执行此操作。采用正则表达式的子集,并随机遍历它。

答案 1 :(得分:5)

摘要:Recursive transition networkpostmodernism generator作为一个有趣的例子)

一个专业化将是你的“反向正则表达式”。


关于术语:正则表达式语法的一种形式,它描述属于特定常规的所有单词语言(即表达式中所有输入匹配)。

因此,可以调用您的问题:“如何创建与给定正则表达式匹配的随机单词”“如何获取属于指定常规语言的随机单词”< / em>的

答案 2 :(得分:0)

绝对可以从正则表达式生成数据。该领域正在开发一些开源项目。

关于how to generate random password from regex的教程将向您解释它是如何完成的。本教程中使用xeger(逆向正则表达式,一个开源项目)。请完成本教程以了解更多信息。

答案 3 :(得分:-1)

没有“反向正则表达”这样的东西。正则表达式就是:表达式。它表达了一个语言,它由一组(可能是无限的)字符串组成。

逆转在表达式的 use 中:它通常用于报告字符串是否在语言中,现在用于生成该语言的字符串。