亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

反轉Python中的正則表達式

反轉Python中的正則表達式

守著一只汪 2019-09-24 16:39:06
我想反轉一個正則表達式。即給定一個正則表達式,我想產生將匹配該正則表達式的任何字符串。我從理論計算機科學背景使用有限狀態機知道如何執行此操作,但是我只想知道是否有人已經編寫了一個庫來執行此操作。:)我正在使用Python,所以我想要一個Python庫。重申一下,我只想要一個與正則表達式匹配的字符串。像 ”?!?nbsp;或“。*”將使無限數量的字符串與正則表達式匹配,但我并不在乎所有選項。我愿意這個庫只對正則表達式的某些子集起作用。
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

別人也有類似的(重復?)問題在這里,我想提供一個小幫手庫生成與Python隨機字符串,我一直在努力。


它包含一個方法,xeger()該方法允許您從正則表達式創建字符串:


>>> import rstr

>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')

u'M5R 2W4'

現在,它可以與大多數基本正則表達式一起使用,但是我敢肯定它會得到改進。


查看完整回答
反對 回復 2019-09-24
?
GCT1015

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


查看完整回答
反對 回復 2019-09-24
  • 3 回答
  • 0 關注
  • 793 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號