表达式: (\ d {2})/.-/.- \ S([0-9] | 0 [0-9] | 1 [0-9] | 2 [0-3]):[0-5] [ 0-9] $
我只希望能够打印出30/06/2016 17:15作为两个单独的变量。 以上不能工作!任何人都可以启发我的表达吗?它似乎只匹配“30/06/2016 17:15”
答案 0 :(得分:0)
使用ast.literal_eval
和re
:
ast.literal_eval
摆脱了tuple
之类的结构。其余的都是小菜一碟。
此解决方案比仅使用正则表达式的解决方案更强大:
import ast,re
a = "('=====================================', '30/06/2016 17:15 T001 201603301', 'ORDER: C002946', 'Cashier: 001', '--------------------------------------')"
t=ast.literal_eval(a)
z=re.compile(r"(\d\d/\d\d/\d\d\d\d)\s(\d\d:\d\d)")
m = z.match(t[1])
if m:
print("date: {}, time {}".format(m.group(1),m.group(2)))
结果:
date: 30/06/2016, time 17:15
说明:
time
获得真正的time.strptime
结构可能会更好(在这种情况下不需要正则表达式)。