Re: [問題] 符合多個正規表示式

看板Python作者時間12年前 (2013/06/19 13:32), 編輯推噓1(105)
留言6則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《eaden (evenrain)》之銘言: : 問題是這樣的,我有一堆字串以及多個正規表示式, : 我希望可以透過簡單的方式知道哪個字串符合哪個正規表示式, : 且正規表示式間是有優先順序的, : 我目前想到的解法是這樣 (兩個網址是一樣的 code XD) : http://pastie.org/7999821 : http://chopapp.com/#ksu6oyv4 : 結果會是 : aabbccdd is level 4 : aaabccdd is level 3 : bbccaaaaa is level 1 : bbccddee is not match : 12345678 is not match : 不過一來這樣做表示式的順序很重要,二來是程式看起來不太直覺... : 不知道有沒有比較聰明一點的寫法? import re strs= [ 'aabbccdd', 'aaabccdd', 'bbccaaaaa', 'bbccddee', '12345678', ] patterns = [ r'(^.*a{5}.*$)', r'(^.*a{4}.*$)', r'(^.*a{3}.*$)', r'(^.*a{2}.*$)', r'(^.+$)', ] s = "\n".join(strs) pattern = r'(?m)' + r'|'.join(patterns) maptab = re.findall(pattern,s) # or use re.finditer / callable-iterator.lastindex --------------------------------------------- In [167]: maptab Out[167]: [('', '', '', 'aabbccdd', ''), ('', '', 'aaabccdd', '', ''), ('bbccaaaaa', '', '', '', ''), ('', '', '', '', 'bbccddee'), ('', '', '', '', '12345678')] 接著就自己再做處理囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.156.250

06/19 14:30, , 1F
^.* 感覺是個不錯的表情符號
06/19 14:30, 1F

06/19 14:31, , 2F
^.*a 好像也不錯
06/19 14:31, 2F

06/19 16:49, , 3F
感謝,我再試試看 ^^
06/19 16:49, 3F

06/19 16:58, , 4F
^.*~$ # 可以 match vim 的備份檔XDDD
06/19 16:58, 4F

06/19 17:40, , 5F
r(^.*)a 好像也很可愛勒
06/19 17:40, 5F

06/19 23:58, , 6F
XDD
06/19 23:58, 6F
文章代碼(AID): #1HmK9Grm (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1HmK9Grm (Python)