3

在使用 Python 2.7 抓取一些文档的过程中,我遇到了一些烦人的页面分隔符,我决定将其删除。分隔符使用一些时髦的字符。我已经在这里问了一个关于如何让这些字符显示它们的 utf-8 代码的问题。使用了两个非 ASCII 字符:'\xc2\xad''\x0c'。现在,我只需要删除这些字符,以及一些空格和页码。

在 SO 的其他地方,我看到 unicode 字符与正则表达式一起使用,但它的格式很奇怪,我没有这些字符,例如'\u00ab'. 此外,它们都没有使用 ASCII 以及非 ASCII 字符。最后,python 文档对正则表达式中的 unicode 主题非常了解......关于标志的一些事情......我不知道。任何人都可以帮忙吗?

这是我目前的用法,它不符合我的要求:

re.sub('\\xc2\\xad\s\d+\s\\xc2\\xad\s\\x0c', '', my_str)
4

2 回答 2

2

您可以删除不需要的所有内容,而不是寻找特定的不需要的字符:

re.sub('[^\\s!-~]', '', my_str)

这会丢弃所有字符而不是:

  • 空格(空格、制表符、换行符等)
  • 可打印的“普通”ascii 字符(!是第一个可打印字符,~是十进制 128 下的最后一个字符)

如果需要,您可以包含更多字符 - 只需调整字符类。

于 2013-09-25T15:55:19.767 回答
0

我有同样的问题,我知道这不是有效的方式,但在我的情况下有效

 result = re.sub(r"\\" ,",x,x",result)
 result = re.sub(r",x,xu00ad" ,"",result)
 result = re.sub(r",x,xu" ,"\\u",result)
于 2018-08-14T11:04:29.573 回答