我尝试使用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,所以不确定我是否正确使用它。
答案 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