提取含日期字符串并格式化输出

背景

OCR识别的字符串中,日期类型存在字符串中,需要提取出来,并格式化

环境以及依赖package

NStudyPy==0.0.12 NStudyPy 工具包 , 一个有用的工具包,可以简化开发流程,详细介绍可以参考 NStudyPy
本教程使用 python 3.10.13 作为开发环境 , 原则上适用于 python 3.9+
本教程开发环境为 windows 10 ,原则上其他系统应该也可以 , 但请注意需要安装对应环境的 poppler, 同时需注意配置 环境变量, 环境变量配置请参阅本站其他文档

!!本站支持全文搜索。

主要流程

  1. 创建项目,安装依赖
pip install NStudyPy==0.0.12
  1. 调用方法

from NStudyPy import PyDate

# 示例日期字符串
date_strs = [
    '有效2024-06-18', "日期:2024-06-18结束", '2024-06-18有效',
    '日期:2024/06/18', '2024/6/18', '2024年06月18日',
    '日期2024年6月8日', '24年6月8日', '024年6月8日',
]

for d in date_strs:
    print(f"原始日期字符串:{d}\t\t 格式化后字符串:\t\t{PyDate.format_date(d)}")

  1. 核心源码
_reg_date = re.compile(r'(\d{2,4}).*?(\d{1,2}).*?(\d{1,2})')

def format_date(date_str: str) -> str:
    """
    格式化日期字符串
    :param date_str: 任意包含日期的字符串
    :return: 格式化后的日期字符串 yyyy-mm-dd日
    """
    match = _reg_date.search(date_str)
    if match:
        year, month, day = match.groups()
        if len(year) == 2:
            year = '20' + year
        elif len(year) == 3:
            year = '2' + year
        return f"{year}-{month.zfill(2)}-{day.zfill(2)}"
    else:
        return None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack_software

感谢打赏,我努力提供优质内容~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值