为了账号安全,请及时绑定邮箱和手机立即绑定

如何为 m/dd/yyyy 应用正则表达式

如何为 m/dd/yyyy 应用正则表达式

回首忆惘然 2021-09-25 21:33:51
我有一列由包含日期和时间的字符串组成。日期的格式为:mm/dd/yyyy、m/d/yyyy、m/dd/yyyy 和 mm/d/yyyy 我使用正则表达式帮助我提取 mm/dd/yyyy 和 m/d/yyyy。我无法提取 m/dd/yyyy 和 mm/d/yyyyimport pandas as pdimport redf = pd.read_csv('path of csv file')corpus = []for i in range(0,df.shape[0]):    x = df.iloc[i]['OrderTime']    if re.search(r'\d{2}/\d{2}/\d{4}',x):  ### for mm/dd/yyyy        y= re.findall(r'\d{2}/\d{2}/\d{4}',x)        corpus.append(y)    elif re.search(r'\d{1}/\d{1}/\d{4}',x): ### for m/d/yyyy        y= re.findall(r'\d{1}/\d{1}/\d{4}',x)        corpus.append(y)    elif re.search(r'\d{1}/\d{2}\d{4}',x): ### for m/dd/yyyy        y= re.findall(r'\d{1}/\d{2}/\d{4}',x)        corpus.append(y)    elif re.search(r'\d{2}/\d{1}\d{4}',x): ### for mm/d/yyyy        y= re.findall(r'\d{2}/\d{1}/\d{4}',x)        corpus.append(y)    else:                     ### empty cells or says nan        y=["00/00/0000"]        corpus.append(y)print(corpus)例如 - 日期是 12/1/2017 输出是 2/1/2017(问题与 mm/d/yyyy)对于像 1/10/2018 这样的日期输出是 00/00/0000
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您知道“重复次数”可以是一个范围而不是单个数字吗?

re.findall(r'\d{1,2}/\d{1,2}\d{4}',x)
        ^^^^^   ^^^^^


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信