如何删除python中多个字符串之间的无效字符?

时间:2017-01-12 23:17:55

标签: python string ocr difflib sequencematcher

我在西班牙语的OCR项目中工作。相机在一行文本中捕获不同的帧。文本行包含:

Este texto,es una prueba del dispositivo lector para no videntes。

经过一些操作后,我得到了这样的字符串:

s1 = "Este texto, es una p!"
s2 = "fste texto, es una |prueba u.-"
s3 = "jo, es una prueba del dispo‘"
s4 = "prueba del dispositivo \ec"
s5 = "del dispositivo lector par:"
s6 = "positivo lector para no xndev"
s7 = "lector para no videntes"
s8 = "¡r para no videntes."

我想加入字符串,以便我可以在最终字符串中获取扫描行的文本:

sf = "Este texto, es una prueba del dispositivo lector para no videntes."

首先,我尝试在两个字符串之间使用SequenceMatcher,但效果不佳:

# -*- coding: utf-8 -*-
from difflib import SequenceMatcher as sq
s1 = "Este texto, es una p!"
s2 = "fste texto, es una prueba u.-"
match = sq(None, s1, s2).find_longest_match(0, len(s1), 0, len(s2))
print unicode(s1 + s2[match.b + match.size:])

结果包含无效字符,例如|!

>>>Este texto, es una p!|prueba u.-

s2s3之间:

>>>fste texto, es una |prueba u.-prueba del dispo‘

等。我在Windows 7上使用python 2.7。

1 个答案:

答案 0 :(得分:0)

你应该使用正则表达式 做点什么

import re
line = re.sub(r'\W', r'', line)

\ W表示任何无字字符。您可以在网站上阅读有关正则表达式的更多信息:https://docs.python.org/2/library/re.html