如何从正则表达式生成多个模式

时间:2013-10-09 12:19:07

标签: regex

我想知道一种从正则表达式中列出所有可能模式的方法。 例如,正则表达式:

(a(g|ag)|(a|b)g)|g

产量

ag (twice), aag, bg and g, correct?

是使用Thompson构造绘制正则表达式然后解析生成的NFA的最佳列表方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Thompson构造,然后浏览所有可能的路径,以使所有字符串与您的正则表达式匹配。 但是,由于正则表达式如a*定义了无限语言,因此您应该有一些停止条件。 (例如,生成的字符串的长度等等)