【发布时间】:2013-09-30 19:29:05
【问题描述】:
在使用 Python 2.7 抓取一些文档的过程中,我遇到了一些烦人的页面分隔符,我决定将其删除。分隔符使用一些时髦的字符。我已经问了一个问题here,关于如何让这些字符显示它们的 utf-8 代码。使用了两个非 ASCII 字符:'\xc2\xad' 和 '\x0c'。现在,我只需要删除这些字符,以及一些空格和页码。
Elsewhere 在 SO 上,我看到 unicode 字符与正则表达式一起使用,但它的格式很奇怪,我没有这些字符,例如'\u00ab'。此外,它们都没有使用 ASCII 以及非 ASCII 字符。最后,python 文档对正则表达式中的 unicode 主题非常了解......关于标志的一些东西......我不知道。有人可以帮忙吗?
这是我目前的用法,它没有达到我想要的效果:
re.sub('\\xc2\\xad\s\d+\s\\xc2\\xad\s\\x0c', '', my_str)
【问题讨论】:
-
以前读过乔尔。那么我是否应该推断我遇到的困难只是我对 unicode 是什么的困惑?
-
可以的。您能否更准确地描述您的输入(例如
repr(my_str)说什么)? -
好的,它似乎是一个 utf8 编码的字节字符串。因此,您的选择是 1)逐字替换该字符串中的 bytes 或 2)将其转换为 unicode 并替换 characters。
-
注意那里的零宽度空格!
标签: python regex unicode utf-8