3 回答
![?](http://img1.sycdn.imooc.com/5458632800010f8802200220-100-100.jpg)
TA贡献1824条经验 获得超8个赞
别人也有类似的(重复?)问题在这里,我想提供一个小帮手库生成与Python随机字符串,我一直在努力。
它包含一个方法,xeger()该方法允许您从正则表达式创建字符串:
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'
现在,它可以与大多数基本正则表达式一起使用,但是我敢肯定它会得到改进。
![?](http://img1.sycdn.imooc.com/545846070001a15002200220-100-100.jpg)
TA贡献1827条经验 获得超4个赞
我不知道要执行此操作的任何模块。如果您在Cookbook或PyPI中找不到类似的内容,则可以尝试使用(未记录)re.sre_parse模块滚动自己的内容。这可能有助于您入门:
In [1]: import re
In [2]: a = re.sre_parse.parse("[abc]+[def]*\d?z")
In [3]: a
Out[3]: [('max_repeat', (1, 65535, [('in', [('literal', 97), ('literal', 98), ('literal', 99)])])), ('max_repeat', (0, 65535, [('in', [('literal', 100), ('literal', 101), ('literal', 102)])])), ('max_repeat', (0, 1, [('in', [('category', 'category_digit')])])), ('literal', 122)]
In [4]: eval(str(a))
Out[4]:
[('max_repeat',
(1, 65535, [('in', [('literal', 97), ('literal', 98), ('literal', 99)])])),
('max_repeat',
(0,
65535,
[('in', [('literal', 100), ('literal', 101), ('literal', 102)])])),
('max_repeat', (0, 1, [('in', [('category', 'category_digit')])])),
('literal', 122)]
In [5]: a.dump()
max_repeat 1 65535
in
literal 97
literal 98
literal 99
max_repeat 0 65535
in
literal 100
literal 101
literal 102
max_repeat 0 1
in
category category_digit
literal 122
添加回答
举报