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

作者: Czero (悠閒)   2015-07-13 17:25:19
各位好 , 小弟剛開始使用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)
作者: mars90226 (火星人)   2015-07-13 21:00:00
看你想怎麼做,你需要1987b後面就結束的話用'\d{4,6}[a-z]+$',如果你是不想要後面有'/'的話用'\d{4,6}[a-z]+(?!\/)'
作者: Czero (悠閒)   2015-07-13 23:18:00
感謝您, 但為何我用[^\/]這樣方式不行呢?
作者: mars90226 (火星人)   2015-07-14 01:12:00
因為這樣會要求後面不能是結尾,你這個例子就會出錯

Links booklink

Contact Us: admin [ a t ] ucptt.com