3 回答

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

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
我不知道要執(zhí)行此操作的任何模塊。如果您在Cookbook或PyPI中找不到類似的內(nèi)容,則可以嘗試使用(未記錄)re.sre_parse模塊滾動(dòng)自己的內(nèi)容。這可能有助于您入門:
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
添加回答
舉報(bào)