python - 如何在 python 中删除转义序列,如 '\xe2' 或 '\x0c'

标签 python regex escaping string-literals

我正在做一个项目(基于内容的搜索),因为我在 Ubuntu 中使用“pdftotext”命令行实用程序,它将所有文本从 pdf 写入某个文本文件。 但它也写项目符号,现在当我读取文件以索引每个单词时,它也会获得一些转义序列索引(如'\x01')。我知道它是因为项目符号(•)。

我只想要文本,所以有什么办法可以删除这个转义序列。我做过这样的事情

escape_char = re.compile('\+x[0123456789abcdef]*')
re.sub(escape_char, " ", string)

但这不会删除转义序列

提前致谢。

最佳答案

问题是 \xXX 只是控制字符的表示,而不是字符本身。因此,除非您使用字符串的 repr,否则您不能按字面意思匹配 \x

您可以使用字符类删除不可打印的字符:

re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]', '', text)

例子:

>>> re.sub(r'[\x00-\x1f\x7f-\xff]', '', ''.join(map(chr, range(256))))
' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'

关于python - 如何在 python 中删除转义序列,如 '\xe2' 或 '\x0c',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946109/

相关文章:

C 编程语言练习 3-2 在数组中打印转义字符

escaping - Kotlin - 换页符 - 非法转义 : '\f'

Python:子类化整个层次结构

Javascript + ReactJS : Why doesn't regex . match() 返回不一致?

c# - 正则表达式 -> 只有字母并以点结尾

android - 清理 sqlite 语句

python - Python 2.7 中的模拟函数?

python - 获取数组中零和非零元素的索引

python - Pytorch tensor.save() 为来自 MNIST 的小张量生成大文件

javascript - 删除脚本中的 HTML 标签