99网
您的当前位置:首页Python 中文时间提取与格式处理(X年X月X日)->(20220321)

Python 中文时间提取与格式处理(X年X月X日)->(20220321)

来源:99网

有关知识是正则表达式(真香)

GetMiddleStr2来自我之前的这篇博客

# 传进来一段话,提取X年X月X日后转换为Year+month+day格式:20200101
import re
def GetMiddleStr2(content,startStr,endStr):
    goalStr = str('')
    
    for sStr in startStr:
        for eStr in endStr:
            patternStr = r'[\s\S]*%s(.+?)%s[\s\S]*'%(sStr,eStr)
            middleStr= re.match(patternStr,content)
            if middleStr:
                if not goalStr: # 判断 空 时候的值
                    goalStr = middleStr.group(1)
                else:        # 非空时,将将短的留下来 
                    goalStr = middleStr.group(1) if len(goalStr)>len(middleStr.group(1)) else goalStr
                    
    return goalStr

def date_extract_transform(para):
    m = re.search("(\d{4}年\d{1,2}月\d{1,2}日)", para)
    if m==None:
        return '00000000'
    strdate = m.group(1)

    month = GetMiddleStr2(strdate, '年', '月')
    if len(month)<2:
        month = '0' + month
    day = GetMiddleStr2(strdate, '月', '日')
    if len(day)<2:
        day = '0' + day
    year =  strdate[:4]

    date = year + month + day
    return date


data = '截至2022年3月19日XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
print(date_extract_transform(data))

输出结果是:20220319

因篇幅问题不能全部显示,请点此查看更多更全内容