3 回答

TA貢獻1824條經驗 獲得超8個贊
別人也有類似的(重復?)問題在這里,我想提供一個小幫手庫生成與Python隨機字符串,我一直在努力。
它包含一個方法,xeger()該方法允許您從正則表達式創建字符串:
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'
現在,它可以與大多數基本正則表達式一起使用,但是我敢肯定它會得到改進。

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
添加回答
舉報