从字符串提取日期文本:多段发票文本的日期提取需求
没问题,我来帮你搞定从这些发票文本里提取日期的需求!
先把你的输入文本列出来:
"TAX INVOICE 28 Dec 2018 PO2222"
"TAX INVOICE 20 Nov 2018 PO11111"
接下来我用Python给出两种实现方式,分别输出成你要的列表和DataFrame格式:
1. 提取为指定格式的列表
我们可以用正则表达式精准匹配日期模式,再调整格式:
import re # 输入的发票文本列表 invoice_texts = [ "TAX INVOICE 28 Dec 2018 PO2222", "TAX INVOICE 20 Nov 2018 PO11111" ] # 匹配「数字+空格+3字母月份+空格+4位年份」的正则 date_pattern = re.compile(r'\d{1,2} [A-Za-z]{3} \d{4}') # 提取并格式化日期 formatted_dates = [] for text in invoice_texts: # 找到文本里的日期字符串 matched_date = date_pattern.search(text).group() # 把空格替换成横杠,得到你要的格式 formatted_date = matched_date.replace(' ', '-') formatted_dates.append(formatted_date) print(formatted_dates) # 输出结果:['28-Dec-2018', '20-Nov-2018']
2. 输出为DataFrame格式
如果需要用pandas的DataFrame展示,只需要把上面的列表转成DataFrame即可:
import pandas as pd # 将格式化后的日期列表转为DataFrame date_df = pd.DataFrame(formatted_dates, columns=['Invoice Date']) print(date_df) # 输出结果: # Invoice Date # 0 28-Dec-2018 # 1 20-Nov-2018
这个方案适配你给出的文本格式,如果后续有更多不同格式的发票文本,我们可以再调整正则表达式来匹配~
内容的提问来源于stack exchange,提问作者southwind
相关产品推荐
相关产品推荐

