前言
疫情期间,部分单位需要识别大量的健康码(以苏康码为例)、行程码(以通信行程卡为例),工作量重复而繁重,利用OCR软件可以对有关内容进行识别,但因为苏康码、行程码截图大小不一,要从中提取出有用的信息,就需要用到正则表达式来进行匹配。
一、识别任务
将苏康码、行程卡进行OCR识别,所有识别出的文字合并成一个字符串,例如:
苏康码的(苏康码,苏康码,王某某,320****123,若您有近14天中高风险地区旅居史(含,04-032023:12,绿色:勤洗手、常通风、戴口罩,出现发热咳嗽等症状,请及时就医,风险报备,信息更新,Elo,核酸检测,通信大数据,新冠疫苗,查询(省内),行程卡,接种查询(省内),8,c8▣,政务服,家庭成员,核酸/抗体,国家防疫,检测查询(全国),健康信息码);
行程码的(〈通信行程卡,通信大数据行程卡,疫情防控,人人有责,请收下绿色行程卡,131**1011的动态行程卡,更新于:2022.04.0307:29:39,您于前14天内到达或途经:江苏省连云,港市,结果包含您在前14天内到访的国家(地区)与停留4小时以上的国内城市,色卡仅对到访地作提醒,不关联健康状况,本服务联合提供,CAICT中国信通院,代中国皂结,◇国移动,%中阳联通,客服热线:10000/10086/10010,一证通查来了!,全国移动电话卡”一证通查”,立即点击进入,防范诈骗,保护你我)
好吧,准确率还可以,但还是经常有识别不对的,默认都正确吧。
二、提取信息的正则表达式
1.苏康码
代码如下(示例):
姓 名:(?<=苏康码,)([^苏康码,][\u4e00-\u9fa5]{2,3}) 用后向肯定断言,明确为苏康码和逗号之后的内容,然后是汉字2-3个字,不包含苏康码字样。 身份证号:(\d{3}\*{1,6}\d{3}) 这个简单就不说明了 日 期:(\d{2}-\d{2}) 时 间:(\d{4}:\d{2}) 颜 色:([\u4e00-\u9fa5]{1}色)
2.行程卡
代码如下(示例):
颜 色:(?<=请收下)([\u4e00-\u9fa5]{2})(?=行程卡) 使用了前向肯定断言和后向肯定断言,下边的也基本都一样。 手机号码:(\d{3}\*{1,6}\d{4})(?=的动态行程卡) 更新时间:(?<=更新于.)(.{18})(?=,) 到达或途经地:(?<=到达或途经.)(.{0,3}省.{0,20}市.{0,1})
总结
最后批量导出为电子表格就行!效果如图: