gpt4 book ai didi

python - 使用 Python 和 Regex 提取不同格式的日期

转载 作者:行者123 更新时间:2023-12-04 19:51:39 25 4
gpt4 key购买 nike

我有以下代码来匹配日期

import re
date_reg_exp2 = re.compile(r'\d{2}([-/.])(\d{2}|[a-zA-Z]{3})\1(\d{4}|\d{2})|\w{3}\s\d{2}[,.]\s\d{4}')
matches_list = date_reg_exp2.findall("23-SEP-2015 and 23-09-2015 and 23-09-15 and Sep 23, 2015")
print matches_list

我期望的输出是
["23-SEP-2015","23-09-2015","23-09-15","Sep 23, 2015"]

我得到的是:
[('-', 'SEP', '2015'), ('-', '09', '2015'), ('-', '09', '15'), ('', '', '')]

请查看 regex 的链接 here .

最佳答案

您遇到的问题是 re.findall 仅返回不包括组 0(整个匹配项)的捕获文本。由于您需要整场比赛(第 0 组),您只需要使用 re.finditer 并获取 group()值(value):

matches_list = [x.group() for x in date_reg_exp2.finditer("23-SEP-2015 and 23-09-2015 and 23-09-15 and Sep 23, 2015")]
IDEONE demo

re.findall(pattern, string, flags=0)
Return all non-overlapping matches of pattern in string, as a list of strings... If one or more groups are present in the pattern, return a list of groups; this will be a list of tuples if the pattern has more than one group.

re.finditer(pattern, string, flags=0)
Return an iterator yielding MatchObject instances over all non-overlapping matches for the RE pattern in string.

关于python - 使用 Python 和 Regex 提取不同格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com