如何用UiPath从PDF文本中提取BRNumber、英文名及中文名?
香港宪报企业信息提取方案
核心思路
利用BRNumber的固定8位字母数字格式作为识别起点,通过「中文字符的出现位置」划分英文名与中文名的边界:
- 英文名范围:BRNumber之后,到第一个中文字符(含中文特殊字符)之前的所有内容(允许为空)
- 中文名范围:从第一个中文字符开始到条目结尾的所有内容(允许为空)
正则表达式实现
使用以下正则规则匹配并分组提取三个字段:
^([A-Z0-9]{8})\s*(.*?)(?=\p{Han}|$)\s*(.*)$
- 分组1:
([A-Z0-9]{8})→ 精准匹配8位字母数字组成的BRNumber - 分组2:
(.*?)(?=\p{Han}|$)→ 非贪婪匹配到第一个中文字符或条目结尾,提取包含空格、特殊字符、换行的英文名 - 分组3:
(.*)$→ 提取从第一个中文字符开始的中文名,支持换行和特殊字符
UiPath执行步骤
- 用
ReadPDF活动提取文本,处理首尾冗余内容后将企业条目存入字符串列表 - 对每条条目调用
Matches活动,填入上述正则表达式 - 从匹配结果的
Groups集合中提取对应字段:- BRNumber:
Matches(0).Groups(1).Value - 英文名:
Matches(0).Groups(2).Value - 中文名:
Matches(0).Groups(3).Value
- BRNumber:
- 空值处理:若分组2内容为空则代表无英文名,分组3为空则代表无中文名
示例验证
针对测试条目 C1234567 20 Hello Co.Ltd 20 你好有限公司,提取结果为:
- BRNumber:
C1234567 - 英文名:
20 Hello Co.Ltd 20 - 中文名:
你好有限公司
完全符合字段划分预期,不会出现英文名错误包含前缀数字的问题。
内容的提问来源于stack exchange,提问作者user8314628
相关产品推荐
相关产品推荐

