发票代码:000009999999
上海增值税电子普通发票
发票号码:88888819999999
开票日期:2022 年 12 月 25 日
校 验 码:48872 23417 42822 61477
机器编号:8888888888888
名 称: 上海yyyyyy医疗设备有限公司 密 9>756>-45<0354-+8440-3/>8+2
购
纳税人识别号: 88888888882478T 04746374205<39>226+/+13-3+
买 码
地 址 、电 话: 28>><*<4-78-00<54>/-544>68
方
开户行及账号: 区 /9+626<78<63500//79<<6<8466
货物或应税劳务、服务名称 规格型号 单位 数 量 单 价 金 额 税率 税 额
(详见销货清单) 179.18 22.22
合 计 ¥179.18 ¥22.22
价税合计(大写) 贰佰零壹圆肆角 (小写) ¥201.40
名 称: 上海xxxxxx百货商业有限公司 订单号[xxxxxxxxx9793280]
销 备
纳税人识别号: xxxyyyy315vvvv29
售
地 址 、电 话: 上海市yyyyy、yyyy-205 yyyy1513
方 注
开户行及账号: 渣打银行(中国)有限公司上海分行 xxxxxxxxxxxxxx745
收款人:徐xx 复核:xx 开票人:xxxx 销售方:(章)
| import pdfplumber |
| import re |
| |
| |
| |
| with pdfplumber.open("74034291.pdf") as pdf: |
| page = pdf.pages[0] |
| text = page.extract_text() |
| |
| print(re.findall(r'^发票号码:(.*?)$[\s\S]*?^价税合计.*?¥(.*?)$[\s\S]*?^名 称: (.*?) .*?$[\s\S]*?^纳税人识别号: (.*?)$[\s\S]*?^地 址 、电 话: (.*?)$[\s\S]*?^开户行及账号: (.*?)$',text,re.M)) |
| |
| |
模式 |
描述 |
. |
匹配任意字符,除了换行符,当re.DOTALL(re.S)标记被指定时,则可以匹配包括换行符的任意字符。 |
(re) |
匹配括号内的表达式,也表示一个组 |
\s |
匹配任意空白字符,等价于 [\t\n\r\f]。 |
\S |
匹配任意非空字符 |
[\s\S] |
匹配任意字符 |
re.MULTILINE 或 re.M |
多行匹配,影响 ^ 和 $,使它们匹配字符串的每一行的开头和结尾。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)