这不应该太难,但由于某种原因,我无法弄清楚如何做到这一点 我有一个日期后跟一些数据,它们都是相同的字符串,如:
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 :(得分: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。显然,除非您在A
,B3
或Z6
中使用逗号,否则不需要真正的正则表达式引擎(在这种情况下请更准确地说明字符串)。