|
1 | 1 | { |
2 | 2 | "invoice_no": { |
3 | 3 | "primary": [ |
4 | | - {"pattern": "发\\s*票\\s*号\\s*码[::]\\s*(\\d+)", "flags": 0, "desc": "Standard invoice code header"}, |
| 4 | + {"pattern": "发\\s*票\\s*号\\s*码[::]\\s*(\\d+)", "flags": 0, "desc": "Standard invoice number"}, |
5 | 5 | {"pattern": "发票号码[::]?\\s*(\\d{20}|\\d{8,12})", "flags": 0, "desc": "Full-electric 20-digit or traditional 8-12 digit"} |
6 | 6 | ], |
7 | 7 | "fallback": [ |
8 | 8 | {"pattern": "\\b\\d{20}\\b", "flags": 0, "desc": "Pure 20-digit number (full-electric)"}, |
| 9 | + {"pattern": "客户账号\\s*(\\d+)", "flags": 0, "desc": "China Mobile customer account"}, |
9 | 10 | {"pattern": "监\\s*(\\d{8})\\b", "flags": 0, "desc": "Old unified invoice monitor number"}, |
10 | 11 | {"pattern": "数电.*?号码[::]?\\s*(\\d{20})", "flags": 0, "desc": "Digital-electric invoice remark number"} |
11 | 12 | ] |
12 | 13 | }, |
13 | 14 | "date": { |
14 | 15 | "primary": [ |
15 | | - {"pattern": "开\\s*票\\s*日\\s*期[::]\\s*(\\d{4}年\\d{1,2}月\\d{1,2}日)", "flags": 0, "desc": "Invoice date label with Chinese date"}, |
16 | | - {"pattern": "开\\s*票\\s*日\\s*期[::]\\s*(\\d{4}[-/]\\d{1,2}[-/]\\d{1,2})", "flags": 0, "desc": "Invoice date label with ISO date"}, |
17 | | - {"pattern": "开\\s*票\\s*日\\s*期[::]\\s*(\\S+?)(?=\\s|购|销|买|售|方|信|统|纳|$)", "flags": 0, "desc": "Invoice date label with lookahead stop"}, |
18 | | - {"pattern": "打印日期\\s*(\\d{4}/\\d{1,2}/\\d{1,2})", "flags": 0, "desc": "China Mobile print date"} |
| 16 | + {"pattern": "开\\s*票\\s*日\\s*期[::]\\s*(\\d{4}年\\d{1,2}月\\d{1,2}日)", "flags": 0, "desc": "Invoice date (Chinese)"}, |
| 17 | + {"pattern": "开\\s*票\\s*日\\s*期[::]\\s*(\\d{4}[-/]\\d{1,2}[-/]\\d{1,2})", "flags": 0, "desc": "Invoice date (ISO)"}, |
| 18 | + {"pattern": "打印日期\\s*(\\d{4}[-/]\\d{1,2}[-/]\\d{1,2})", "flags": 0, "desc": "China Mobile print date"} |
19 | 19 | ], |
20 | 20 | "fallback": [ |
21 | | - {"pattern": "(20\\d{2}年\\d{1,2}月\\d{1,2}日)", "flags": 0, "desc": "Chinese date format"}, |
22 | | - {"pattern": "(20\\d{6})", "flags": 0, "desc": "Compact 8-digit date YYYYMMDD"}, |
23 | | - {"pattern": "开票日期[::]?\\D{0,15}(20\\d{2}\\s*\\d{1,2}\\s*\\d{1,2})", "flags": 0, "desc": "Invoice date with context"}, |
24 | 21 | {"pattern": "(\\d{4}年\\d{1,2}月\\d{1,2}日)", "flags": 0, "desc": "Generic Chinese date"}, |
25 | | - {"pattern": "(?:乘车|通行|航班|出发|到达)日期[::]?\\s*(\\d{4}[-/年.]\\d{1,2}[-/月.]\\d{1,2})", "flags": 0, "desc": "Travel/toll ticket date"}, |
26 | | - {"pattern": "(\\d{4}-\\d{2}-\\d{2})", "flags": 0, "desc": "ISO date format YYYY-MM-DD"}, |
| 22 | + {"pattern": "(\\d{4}-\\d{2}-\\d{2})", "flags": 0, "desc": "ISO date YYYY-MM-DD"}, |
27 | 23 | {"pattern": "(\\d{4})[/\\.](\\d{1,2})[/\\.](\\d{1,2})", "flags": 0, "desc": "YYYY/MM/DD or YYYY.MM.DD"} |
28 | 24 | ] |
29 | 25 | }, |
30 | 26 | "amount": { |
31 | 27 | "primary": [ |
32 | 28 | {"pattern": "小写[::]?\\s*[¥¥]?\\s*([\\d,]+\\.\\d{2})", "flags": 0, "desc": "Lowercase amount with decimals"}, |
33 | 29 | {"pattern": "价\\s*税\\s*合\\s*计.*?[¥¥]?\\s*([\\d,]+\\.\\d{2})", "flags": 0, "desc": "Price-tax total"}, |
34 | | - {"pattern": "\\(小写\\)[¥¥]?\\s*([\\d,]+\\.\\d{2})", "flags": 0, "desc": "Small write format"}, |
35 | | - {"pattern": "本期总费用\\s*[¥¥]?\\s*([\\d,]+\\.?\\d*)", "flags": 0, "desc": "China Mobile current period total"}, |
36 | | - {"pattern": "小\\s*写.*?[¥¥]?\\s*([\\d,]+\\.?\\d*)", "flags": 0, "desc": "Lowercase amount"} |
| 30 | + {"pattern": "本期总费用\\s*[¥¥]?\\s*([\\d,]+\\.?\\d*)", "flags": 0, "desc": "China Mobile total fee"} |
37 | 31 | ], |
38 | 32 | "fallback": [ |
39 | 33 | {"pattern": "(小写|价税合计)\\D{0,50}([¥¥]?\\d+\\.?\\d{2})", "flags": 0, "desc": "Flattened lowercase/total amount"}, |
40 | | - {"pattern": "[壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角分整]{2,}\\D{0,10}([¥¥]?\\d+\\.?\\d{2})", "flags": 0, "desc": "Chinese uppercase amount heuristic"}, |
41 | | - {"pattern": "(?:合计金额|金额总计|应付金额|总金额)[::]?\\s*[¥¥]?\\s*([\\d,]+\\.?\\d{2})", "flags": 0, "desc": "Total amount variants"} |
| 34 | + {"pattern": "[壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角分整]{2,}\\D{0,10}([¥¥]?\\d+\\.?\\d{2})", "flags": 0, "desc": "Chinese uppercase amount heuristic"} |
42 | 35 | ] |
43 | 36 | }, |
44 | 37 | "purchaser": { |
45 | 38 | "primary": [ |
46 | 39 | {"pattern": "(?:购)?名称[::](.+?)(?:销|售|卖|纳税|统一|地址|开户)", "flags": 0, "desc": "Purchaser name label"}, |
47 | 40 | {"pattern": "买名称\\s*[::]?\\s*([\\u4e00-\\u9fa5()()]{2,50}?)(?:售名称|方方|方信)", "flags": 0, "desc": "JD-style: 买名称 without colon"}, |
48 | | - {"pattern": "打印次数\\d+([\\u4e00-\\u9fa5()()]{2,50})打印日期", "flags": 0, "desc": "China Mobile customer name (flat text)"}, |
49 | | - {"pattern": "客户\\s+([\\u4e00-\\u9fa5()()]{2,50})\\s+集团", "flags": 0, "desc": "China Mobile customer name (normal text)"} |
| 41 | + {"pattern": "客户\\s+([\\u4e00-\\u9fa5()()]{2,50})\\s+集团", "flags": 0, "desc": "China Mobile purchaser (between 客户 and 集团)"} |
50 | 42 | ], |
51 | 43 | "fallback": [ |
52 | 44 | {"pattern": "名\\s*称\\s*[::]\\s*([^\\s]+)", "flags": 0, "desc": "Generic name label"}, |
53 | | - {"pattern": "名\\s*称\\s*[::]?\\s+([^\\s::]+)", "flags": 0, "desc": "Loose name match"}, |
54 | 45 | {"pattern": "购买方名称[::]\\s*([^\\n::]{2,50})", "flags": 0, "desc": "Digital-electric purchaser full label"}, |
55 | | - {"pattern": "([^\\n::]{4,30}?)\\s*统一(?:信用代码|社会信用代码)[::]\\s*[A-Z0-9]{18}", "flags": 0, "desc": "Company name via credit code reverse-lookup", "group": 1}, |
56 | | - {"pattern": "购方名称[::]\\s*([^\\n::]{2,50})", "flags": 0, "desc": "Purchaser short label"} |
| 46 | + {"pattern": "([^\\n::]{4,30}?)\\s*统一(?:信用代码|社会信用代码)[::]\\s*[A-Z0-9]{18}", "flags": 0, "desc": "Company name via credit code", "group": 1} |
57 | 47 | ] |
58 | 48 | }, |
59 | 49 | "seller": { |
60 | 50 | "primary": [ |
61 | 51 | {"pattern": "(?:销|售)名称[::](.+?)(?:买售|纳税|统一|地址|开户|复核|开票)", "flags": 0, "desc": "Seller name label"}, |
62 | | - {"pattern": "售名称\\s*[::]?\\s*([\\u4e00-\\u9fa5()()]{2,50}?)\\s*[::]{0,2}方", "flags": 0, "desc": "JD-style: 售名称 followed by company then 方"}, |
63 | | - {"pattern": "(中国移动通信集团[\\u4e00-\\u9fa5]+有限公司)", "flags": 0, "desc": "China Mobile group company as seller"} |
| 52 | + {"pattern": "售名称\\s*[::]?\\s*([\\u4e00-\\u9fa5()()]{2,50}?)\\s*[::]{0,2}方", "flags": 0, "desc": "JD-style: 售名称 followed by company"}, |
| 53 | + {"pattern": "(中国移动通信集团[\\u4e00-\\u9fa5]+有限公司)", "flags": 0, "desc": "China Mobile seller"} |
64 | 54 | ], |
65 | 55 | "fallback": [ |
66 | | - {"pattern": "销售方名称[::]\\s*([^\\n::]{2,50})", "flags": 0, "desc": "Digital-electric seller full label"}, |
67 | | - {"pattern": "销方名称[::]\\s*([^\\n::]{2,50})", "flags": 0, "desc": "Seller short label"} |
| 56 | + {"pattern": "销售方名称[::]\\s*([^\\n::]{2,50})", "flags": 0, "desc": "Digital-electric seller full label"} |
68 | 57 | ] |
69 | 58 | } |
70 | 59 | } |
0 commit comments