用Python中的一些文本替换字符串中的日期?

时间:2018-12-03 07:38:02

标签: python string python-3.x datetime

我有类似的文字

input_string = " - 01 APRIL 2018 - ING000038985695286069"

我想用DD或DATE之类的文本替换字符串中的日期

output_string = "- DD/DATE - ING000038985695286069"

到目前为止,我可以使用

从字符串中提取日期。
import datefinder
matches = list(datefinder.find_dates(input_string))
if len(matches) > 0:
    date = matches[0]
    print(date)

但是如何获得输出是我的问题。

1 个答案:

答案 0 :(得分:0)

日期查找器很适合解析文本中的日期,但是您可以省略库,而只使用正则表达式(如果,日期始终采用所示格式)。

import re

result = re.sub('\s(\d*\s\w*\s\d*)\s', ' DATE ', input_string)

正则表达式细分:

  • \s匹配一个空格
  • (开始捕获文本
  • \d*尽可能匹配任意数字
  • \s完全匹配一个空格字符
  • \w*匹配尽可能多的单词字符(实际上也匹配数字)
  • \s再一个空格
  • \d*再次尽可能多的数字
  • )结束捕获
  • \s匹配一个空格

更新
可以使用datefinder包来查找所有日期:

dates_regex = datefinder.DateFinder().DATE_REGEX
dates_regex.sub('DATE ', input_string)
  

请注意,此解决方案仍使用该程序包,但实际上并未执行您期望的操作。它会找到数字序列并将其替换。
  我会强烈建议您构建自己的正则表达式以完全满足您的需求。