如何使用re.search从字符串中提取所有日期?

时间:2019-12-29 08:23:08

标签: python regex date python-3.6

当字符串中有多个日期时,如何使用re.search提取所有日期?

date_regex = '\d{1,4}([.\-/])\d{1,2}([.\-/])\d{1,4}'
i = "09/22/2019 - 09/10/2003"
re.search(date_regex, i)

它只返回第一个日期为:

"09/22/2019"

但是我想要的是字符串中所有日期的列表:

["09/22/2019", "09/10/2003"]

2 个答案:

答案 0 :(得分:0)

Re.search将仅返回第一次出现的情况,否则您将无法使用findall()返回然后再出现的情况。

答案 1 :(得分:0)

尝试一下:

i = "09/22/2019 - 09/10/2003"
date_regex=r'\b(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20\d\d)\b'
b = re.findall(date_regex, i)
['/'.join(map(str, x)) for x in b ]  

输出

['09/22/2019', '09/10/2003']