我已经在ubuntu中使用pdftotext -raw /path/to/pdf.pdf /path/to/output.txt
将pdf文档转换为文件。我使用sample = open("/path/to/output.txt").read()
读取转换后的文件。现在示例有未解码的Unicode字符串,如\xe2\x80\x99
。我想使用正则表达式替换它们''
。我使用的模式re.sub(r"""\\\\"""," ",sample),re.sub(r'\\x..',"",sample),re.sub(r'\\\\x..'," ",sample)
使用re替代unicode字符串
例如借此
abc="[email protected]\n\x0c"
re.sub(r'\\x..',"",abc)
re.sub(r'\\\\x..'," ",abc)
abc.encode("ascii","ignore")
我评价\\x..
模式using this online regex tester选择语言蟒蛇also this和this SO Question's answer使用基于参考\\\\x..
模式,但两者给我[email protected]\n\x0c
作为输出。它不会删除这些unicode字符串。我不想使用模式\\\w..
,因为它可能会选择转义序列。即使我尝试过输入UnicodeDecodeError
的abc.encode('utf8')。我明白这个问题是因为\x??
正在被读为字符串,但我不知道如何解决这个问题。
如果你想在解决方案进行测试,请使用这些:
182\nWheel of Life, 24\xe2\x80\x9325, 135\xe2\x80\x93136
\n194\xe2\x80\x93195
CTI\xe2\x80\x99s\ntraining enables participants
80\xe2\x80\x9383
这些测试串的预期输出应该是
182\nWheel of Life, 2425, 135136
\n194195
CTIs\ntraining enables participants
8083
注:
我ve也试过
abc=abc.decode("utf-8")
abc=abc.encode("ascii","ignore")
这个删除某些字符,但我仍然可以看到一些字符串像\x0c
这是换所以我只想正则表达式的方式来替换这些字符串。
尝试正则表达式:
abc="[email protected]\x0c\xc0ecoaches.com\n\x0c" #input
re.sub(r'[\\x[a-fA-F0-7]-\\x[a-fA-F0-7]]+',' ',abc)
re.sub(r'[^\x00-\x7F]+',' ',abc)
re.sub(r'\\x..',"",abc)
re.sub(r'\\\\x..'," ",abc)
请加原因downvoting。因为它会帮助我理解我的错误。问题可能很简单,但需要解决方案。我在这里张贴之前已经做了很多的研究及尝试,我希望人们“LL值它们