You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

invoice2data提取发票条目匹配失败报错Ignoring *Item line求助

问题根因排查

你的正则规则和实际发票条目格式存在3个核心不匹配点,直接导致匹配失败:

  • 数值格式不兼容:原正则中price/value/vat_value字段用\d+仅能匹配整数,而实际发票条目里的金额都是带小数点的(如83.79/15.92),完全无法命中。
  • 商品名称匹配规则不合理:原正则要求商品名称每个单词后必须跟1个空格,既不支持名称中间的多空格分隔,也不兼容名称末尾无空格的场景,会直接截断匹配逻辑。
  • 空白字符处理不全面:原正则仅匹配普通空格[ ],无法兼容OCR识别出的制表符、跨行换行、多余连续空格,比如第二条日志里的86.5被拆成了两行,直接匹配失败。
调整方案

1. 修正正则规则

将原line字段的正则替换为如下版本,兼容小数、多空白、跨行场景:

\*\s*(?P<crt>\d+)\s+(?P<name>[\w\s\-\/]+?)\s+(?P<um>[a-zA-Z]+)\s+(?P<quantity>\d+)\s+(?P<price>\d+(?:\.\d+)?)\s+(?P<value>\d+(?:\.\d+)?)\s+(?P<vat_value>\d+(?:\.\d+)?)\s*\*

核心修改点:

  • 数值匹配规则改为\d+(?:\.\d+)?,同时支持整数和带小数的金额
  • 空白匹配统一用\s+,兼容空格、制表符、换行符
  • 商品名称用非贪婪匹配[\w\s\-\/]+?,自动匹配到下一个字段(单位um)前的所有内容
  • 兼容日志中条目前后包裹的*符号

2. 补充配置参数

在lines配置下添加multiline: true,允许正则跨行匹配,解决部分条目被OCR拆分到多行的问题:

lines:
  start: Valoarea TVA
  end: Data scadenta
  multiline: true
  line: # 替换为上面修正后的正则

内容的提问来源于stack exchange,提问作者shAkur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:30:02