[問題] 請問一解法...

看板RegExp (正規表示式 Regular Expression)作者 (悠閒)時間9年前 (2015/07/13 17:25), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/2 (看更多)
各位好 , 小弟剛開始使用python練習regex 請教一下 , 下面我想印出['1987b'] , 試了一陣子不曉得re哪個地方需要調整= =||| 感謝提點! r = re.compile('[\d]{4,6}[a-z]+[^\/]+[\w]*') string_list = ['123', '1911a/1/1', '1987b'] list_new = list(filter(r.match, string_list)) print(list_new) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.120.94 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1436779523.A.9CD.html

07/13 21:00, , 1F
看你想怎麼做,你需要1987b後面就結束的話
07/13 21:00, 1F

07/13 21:02, , 2F
用'\d{4,6}[a-z]+$',如果你是不想要後面有'/'的話
07/13 21:02, 2F

07/13 21:02, , 3F
用'\d{4,6}[a-z]+(?!\/)'
07/13 21:02, 3F

07/13 23:18, , 4F
感謝您, 但為何我用[^\/]這樣方式不行呢?
07/13 23:18, 4F

07/14 01:12, , 5F
因為這樣會要求後面不能是結尾,你這個例子就會出錯
07/14 01:12, 5F
文章代碼(AID): #1LeuG3dD (RegExp)
討論串 (同標題文章)
文章代碼(AID): #1LeuG3dD (RegExp)