正则表达式内容生成器

时间:2014-05-22 05:27:40

标签: python regex

正如许多问题所证实的那样,正则表达式是处理文本的常用工具:查找匹配的字符串,从配置文件中提取值等等。

我的问题是:生成匹配正则表达式的内容的最佳方法是什么?

一个例子可能是:从正则表达式:[1-3]{2},该方法应该生成一个列表,或者更一般地说,一个集合,如:

"11"
"12"
"13"
"21"
"22"
"23"
"31"
"32"
"33"

我知道如何使程序执行此操作,我想知道的是它是否存在执行此任务的包,类或方法。类似的东西:

comp = re.compile("[1-3]{2}")
explorerIterator = comp.explore()
for s in explorerIterator:
    ...
    ...

1 个答案:

答案 0 :(得分:5)

有一个名为exrex的asciimoo编写的模块可以做到这一点。看看那个。

以下是该页面的一个很好的例子:

>>> list(exrex.generate('((hai){2}|world!)'))
['haihai', 'world!']