[问题] 请问一解法...

楼主: 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