在Python中生成匹配正则表达式的字符串
可能重复的问题:
在Python中反转正则表达式
我遇到了一个问题,听起来比实际要简单……我不太确定。我想定义一个正则表达式,然后想生成一些符合这个表达式的字符串。
有没有什么模块可以导入,能实现这个功能?最好不是那种用 re.search
或 re.match
的暴力破解方法。我觉得应该有更优雅的解决办法。
3 个回答
0
对于某些正则表达式,可能的字符串列表是无限的。举个例子:
a*
包括
a
aa
aaa
等等。因此,对于给定的正则表达式,我们无法生成所有可能的字符串。
13
exrex模块的作用是这样的:https://github.com/asciimoo/exrex。
43
我最近在做一个小工具库,用来在Python中生成随机字符串。
这个库里有一个方法,叫做xeger()
,可以让你根据正则表达式来创建字符串:
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'
现在,这个方法可以处理大部分基本的正则表达式。