在使用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)
答案 0 :(得分:2)
您可以删除不所需的所有内容,而不是寻找特定的不需要的字符:
re.sub('[^\\s!-~]', '', my_str)
这会抛弃所有字符:
!
是第一个可打印的字符,~
是最后的十进制字符128)如果需要,您可以包含更多字符 - 只需调整字符类。
答案 1 :(得分:0)
我也有同样的问题,我知道这不是很有效,但就我而言还是有效的
result = re.sub(r"\\" ,",x,x",result)
result = re.sub(r",x,xu00ad" ,"",result)
result = re.sub(r",x,xu" ,"\\u",result)