# -*- coding: utf-8 -*- # t08-fields.py — A4-3-3-1 新增客户表单字段标签提取 import io, sys, re sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') fn = '.scratch/opportunity-bugfix/lanhu-pages/A4-3-3-1_新增客户信息.md' lines = open(fn, 'r', encoding='utf-8').read().splitlines() # 抓「字段名:」式标签与输入类控件的短文本行 pats = re.compile(r'(\*\s*[\u4e00-\u9fa5A-Za-z0-9/]{2,12}|[\u4e00-\u9fa5A-Za-z0-9/]{2,12}:)') seen = [] for ln in lines: m = re.match(r'\| u\d+ \| (矩形|单元格|按钮|文本框|下拉框|单选按钮|复选框) \| Unnamed \| `?(.+?)`? \|$', ln.strip()) if not m: continue txt = m.group(2).strip() if not txt or len(txt) > 25 or txt.startswith('itc') or txt in ('Unnamed',): continue if any(k in txt for k in ('管理','首页','菜单','工作台','收起','商机','线索','看板','系统设置','进入后台','项目','公海','我的','联系人20','联系人10','联系人8')): continue seen.append((m.group(1), txt)) # 去重保序 out, done = [], set() for t, s in seen: if s not in done: done.add(s) out.append((t, s)) for t, s in out: print(f'{t}\t{s}') print('TOTAL', len(out))