我有类似的文字
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)
但是如何获得输出是我的问题。
答案 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)
请注意,此解决方案仍使用该程序包,但实际上并未执行您期望的操作。它会找到数字序列并将其替换。
我会强烈建议您构建自己的正则表达式以完全满足您的需求。