Python 使用正则表达式提取特定日期和时间

Python 使用正则表达式提取特定日期和时间,python,regex,Python,Regex,使用 表达方式: (\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”完全匹配它使用ast.literal\u eval和re的组合效果很好: ast.literal\u eval为您摆脱了类似元组的结构。其余的都是小菜一碟 此解决方案比仅限regex的解决方案更健壮: imp

使用

表达方式: (\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”完全匹配

它使用
ast.literal\u eval
re
的组合效果很好:

ast.literal\u eval
为您摆脱了类似元组的结构。其余的都是小菜一碟

此解决方案比仅限regex的解决方案更健壮:

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.strtime
    (在这种情况下不需要正则表达式)获得真正的
    time
    结构会更好

它可以通过结合使用
ast.literal\u eval
re

ast.literal\u eval
为您摆脱了类似元组的结构。其余的都是小菜一碟

此解决方案比仅限regex的解决方案更健壮:

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.strtime
    (在这种情况下不需要正则表达式)获得真正的
    time
    结构会更好

你是总统!竖起大拇指,我如何将打印的
print(z.match(t[1]).group(1))
分为两份打印声明?你是总统!竖起大拇指,我如何将print
print(z.match(t[1]).group(1))
分为两个print语句?