我们正在使用OCR从图像中提取文本。这个OCR中我最烦人的问题之一就是我有时候不需要空间,因为OCR找到了一个字符之间有很大跟踪的单词。
例如我得到了:
var text = "CHA BLIS 1 ER CRU CONTROLEEC B E A U R O Y C a Chablisienne"
我试着这样做:
test.replace(/([A-Z])\s(?=[A-Z]\b)/, '$1')
但如果我这样做,我得到了结果:
CHA BLIS 1 ER CRU CONTROLEECBEAUROYC a Chablisienne
但预期结果应为:
CHA BLIS 1 ER CRU CONTROLEEC BEAUROYCa Chablisienne
我的绝对需要是将所有单个角色重组,但不要改变其他单词。
如果:
var text = "CHA BLIS 1 ER CRU CONTROLEEC BEAU R O Y C a Chablisienne"
应输出:
CHA BLIS 1 ER CRU CONTROLEEC BEAU ROYCa Chablisienne
在花了几个小时才找到合适的组合后,我没有成功。
ps:大小写之间不一定要区别对待。
答案 0 :(得分:1)
如果你需要将所有单独的字母粘在一起:
\b([A-Za-z])\s+(?!\w\B)
否则使用单个\b
字边界标记:
\b([A-Z])\s+(?![^A-Z])
答案 1 :(得分:0)
使用word boundary anchors,您可以将搜索范围限制为单个字符:
test.replace(/\b([A-Z]) (?=[A-Z]\b)/i, '$1')