我正在使用NodeRED对通过Microsoft Azure认知服务上的图像分析(OCR)创建的字符串执行一些逻辑。图像分析不允许任何模式匹配/输入模式。
结果字符串(我们称之为'A')有时会对字符的解释稍有错误,典型的情况是'l'='1'或's'='5'。
生成的字符串可以是少数几种不同格式中的一种,为了便于讨论,我们假设:
1.[a-z] {4,5}
1.[a-g] {3} [0 - 9] {1,2}
1.[0 - 9][a-z] {4}
我需要做的是确定被解释的字符串('A ')与哪种格式(' 1 ',' 2 '或' 3')最接近。一旦我确定了这一点,我计划调整被误解的字符,并希望留下一个(接近)完美的字符串。
我最初的计划是将"A"转换为RegEx-因此,如果"A"返回为"12345",我将其更改为RegEx对象[1|[2]|z] 34 [5|s],将此对象与RegEx对象进行比较,希望有一个匹配。
实际上,被解释的字符串更像是8个字母数字和5个不同的(相当复杂的)RegEx可能性,但我已经尝试简化这个问题。
所以问题是:有没有可能用这种方式来比较RegEx?有没有人对如何改进这种图像分析有任何其他的建议?
谢谢
1条答案
按热度按时间qxsslcnc1#
下面是一个使用笛卡尔积比较字符串可能匹配的解决方案。测试字符串是
'abclz'
,它可以匹配pattern1
或pattern2
:输出: