使用正则表达式从字符串的python数组中提取日期

时间:2017-11-29 14:59:48

标签: python regex

我尝试使用python从字符串中提取日期。日期的格式为mm-dd-yyyy。所以我知道正则表达式应该是/ d {2} - / d {2} - / d {4}。但是,当我尝试迭代下面的数组时,我无法从字符串中提取日期。

import re 
logs = ["First entry to journal logs. (01-01-2015)", "Last entry to journal logs 07-01-2016"]
for i in logs:
    m = re.match("/d{2}-/d{2}-/d{4}",i)
    print m.group(0)

我之前没有使用过re,所以不确定我是否正确使用它。

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

import re

s = ["First entry to journal logs. (01-01-2015)", "Last entry to journal logs 07-01-2016"]

print([re.findall(r'\d{2}\-\d{2}\-\d{4}', i) for i in s])

收率:

[['01-01-2015'], ['07-01-2016']]

答案 1 :(得分:0)

您无法使用匹配在文字内搜索,如果您使用匹配,则需要从初始位置匹配到最终位置,要在文本内搜索搜索

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import re
logs = ["First entry to journal logs. (01-01-2015)", "Last entry to journal logs 07-01-2016"]
for i in logs:
    m = re.search("[0-9]{2}\-[0-9]{2}\-[0-9]{4}",i)
    if m:
        print m.group(0)

输出:

01-01-2015
07-01-2016