dtpattern = re.compile(r'(.*?)\s+(\d{2}\.\d{2}\.(?:\d{2}|\d{4})\s+\d{2}:\d{2})|')
name, date = dtpattern.search(name_date).groups()
>>> dtpattern = re.compile(r'(.*?)\s+(\d{2}\.\d{2}\.(?:\d{2}|\d{4})\s+\d{2}:\d{2})|')
>>> for line in samples:
... name, date = dtpattern.search(line).groups()
... print name
... print date
...
john smith 23
21.01.1994 02:23
mr magoo
30.04.05 23:37
Mr bing bong
29.01.10 20:53
如果总是在最后2个项目上注明日期,您可以尝试以下操作:
输出:
^{pr2}$这是一个非常适合正则表达式的任务:
这将匹配一个数字模式(每一组数字长度为2或4位数),中间有适当的分隔符;后向和前瞻模式确保匹配仅限于前面有空格、后面有管道字符的日期。在
^{pr2}$如果您还需要名称以及,请将空白前的所有内容以及日期模式分组:
只需使用不带参数的
split
,就可以轻松地获得所需的任何数据,甚至可以将其放回一个规范化字符串中,用空格或逗号分隔。在相关问题 更多 >
编程相关推荐