在Python中生成匹配正则表达式的字符串

26 投票
3 回答
46604 浏览
提问于 2025-04-16 09:34

可能重复的问题:
在Python中反转正则表达式

我遇到了一个问题,听起来比实际要简单……我不太确定。我想定义一个正则表达式,然后想生成一些符合这个表达式的字符串。

有没有什么模块可以导入,能实现这个功能?最好不是那种用 re.searchre.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'

现在,这个方法可以处理大部分基本的正则表达式。

撰写回答