vai*_*312 8 python regex escaping string-literals
我正在研究一个项目(基于内容的搜索),因为我在Ubuntu中使用'pdftotext'命令行实用程序,它将所有文本从pdf写入一些文本文件.但是它也写了子弹,现在当我正在读取文件来索引每个单词时,它也会得到一些索引的转义序列(比如'\ x01').我知道它是因为子弹(•).
我只想要文本,所以有没有办法删除这个转义序列.我做过这样的事情
escape_char = re.compile('\+x[0123456789abcdef]*')
re.sub(escape_char, " ", string)
Run Code Online (Sandbox Code Playgroud)
但这不会删除转义序列
提前致谢.
问题是它\xXX只是控制角色的表示,而不是角色本身.因此,\x除非您正在处理repr字符串,否则您无法完全匹配.
您可以使用字符类删除不可打印的字符:
re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]', '', text)
Run Code Online (Sandbox Code Playgroud)
例:
>>> re.sub(r'[\x00-\x1f\x7f-\xff]', '', ''.join(map(chr, range(256))))
' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7671 次 |
| 最近记录: |