首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OCR识别双或S中的数字5

使用OCR识别双或S中的数字5
EN

Stack Overflow用户
提问于 2017-03-17 13:57:29
回答 1查看 100关注 0票数 1

我正在使用OCR的收据阅读应用程序,我正在建设。可以理解的是,OCR在S和A5之间存在差异。

我的应用程序可以找到餐厅收据中的每一行,通常格式如下:

代码语言:javascript
复制
 1 Champagne             £505.55
 5 Burger with chips     £25.00
 2 Chips with cheese     £5.00
 2 Coke                  £1.50
 1 Ketchup               £0.50   
 5 Penny sweets          £0.05

目前我可以找到Int和文本罚款,我也可以得到双在结尾,但很少它包含一个5。是否有一些准则,我可以在适当的地方,以确定一个5是否已经被替换为看它的周围环境?我现在只能通过识别货币符号并替换之后出现的任何事件来假设?但有时,它很难认识到这些,或者根本就没有。任何建议或帮助都会很好。谢谢

编辑:我知道可能没有一个完美的答案,以获得强硬的价格,如or 555.55,以SSS.SS形式出现,但如果有什么更常见的价格,如0.50,10.50或5.00等,我很想听听一些建议。再次感谢

更新:

代码语言:javascript
复制
mutating func replaceWhereFivesShouldBe() {

    do {

        let regEx = try! NSRegularExpression(pattern: "\\s+[0-9S]+\\.[0-9S]{2}")
        let range = NSMakeRange(0, self.characters.count)
        self = regEx.stringByReplacingMatches(in: self, range: range, withTemplate: "5")
    } catch {

        return
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 14:10:05

使用regex匹配任何在to之后的文本,并将所有"S“字符替换为"5”。这假设在货币符号之后只有非阿尔法字符(特别是没有S字符)。这一准则应能发挥作用:

代码语言:javascript
复制
£[0-9S]+\.[0-9S]{2}

从那里,找到你的S字符的索引,并用5替换它们。

在货币符号不存在(或检测到)的情况下,只需使用regex来标识货币金额就可以了。基于您的示例,我不希望在项目描述中找到该模式。就像这样:

代码语言:javascript
复制
\s+[0-9S]+\.[0-9S]{2}

或者,如果货币符号被混淆,通配符就像:

代码语言:javascript
复制
\s+.[0-9S]+\.[0-9S]{2}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42859445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档