2016-03-04 44 views
0

这应该不是太难,但由于某种原因,我无法弄清楚如何做到这一点。
我有个约会其次是一些数据,它是所有相同的字符串,如:Python重新分割日期从其他数据

2015-11-27 A1,B3
2015-11-23 A1
2015-11-22 A1,B3,Z6

现在我正在努力做re.compile(r'^(\d\d\d\d-\d\d-\d\d) (\w\d)(,\w\d)?(,\w\d)?')
而这样的作品,但如果少于三个字符/数字对,则返回一个或两个空字符串。
有没有一种方法可以压缩编译效率更高它对我来说只是感觉太蛮横。

+0

为什么你不使用香草'str.split'?在空白处分割一次,然后用逗号分割第二个结果元素。 – jonrsharpe

+0

我想你们两个是对的。我只是想学习如何使用正则表达式。谢谢 (: –

回答

1

很简单,我想:

import re 

string = """2015-11-27 A1,B3 
2015-11-23 A1 
2015-11-22 A1,B3,Z6""" 

for line in re.split("\n", string): 
    date, rest = re.split("\s", line) 
    print "Date: " + date + ", Rest: " + rest 

    #parts = re.split(",", rest) 

a demo on ideone.com。显然,除非你在AB3Z6中也有逗号(在这种情况下请更精确地表示你的字符串),否则不需要真正的正则表达式引擎。