字符串识别算法

最近,一个项目,做一个工具,代替原来的人工识别文档的工作,

有辛,本人被安排研究字符串识别算法,

历经7天, 已经实现改算法, 识别率相当的高!

被分析字符串来自excel的一行. 按照业务逻辑来看,一行excel里面 只有两中域 一种叫可变域,另一种叫非可变域,

研究发现,  可变域(下面称为FIELD)有着比较明显的特点,都是以特殊字符打头,以某几种方式存在,

因为以特殊字符打头~~~~所以,算法来了!

1.关键头字触发

触发什么呢?  暗示程序下面可能会有一个FIELD, 那么下面就开始看,是不是一个FIELD,我的实现办法主要是:正则表达式匹配出满足特征的字符,

一个正则表达式子就解决问题了吗?没有~~~~~~关于FIELD的设计思路在这里体现出来了!

//'X','X','*','Y','M','D','H','Z','9'      //'X'   list_x.add("X+//-X+");   list_x.add("X+");   //'X'   list_X2.add("(X )+X");   list_X2.add("(X )+");   //'Y'   list_Y.add("[Y]{4}[/][M]{2}[/][D]{2}");   list_Y.add("[Y]{4}");   //'*'   list_xx.add("(* ){3}.+(* ){3}");   //'H'   list_H.add("HH:MI:SS");   list_H.add("HH:MI");   //'M'   list_M.add("[M]{2}/[D]{2}");   list_M.add("[M]{2}");   //'D'   list_D.add("[D]{2}");   //'Z'   list_Z.add("[Z]{1,3},(ZZZ,)*[Z]{1,2}9");   list_Z.add("[Z]{1,3}9");   list_Z.add("[Z]{1,3}");   //'9'   list_9.add("9999");

 

实现一个

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值