[英]What is the correct way to use unicode characters in a python regex
在使用Python 2.7抓取某些文档的过程中,我遇到了一些恼人的页面分隔符,我决定删除它们。 分隔符使用一些时髦的字符。 我已经在这里问了一个关于如何让这些字符显示他们的utf-8代码的问题。 使用了两个非ASCII字符: '\\xc2\\xad'
和'\\x0c'
。 现在,我只需要删除这些字符,以及一些空格和页码。
在 SO的其他地方 ,我看到unicode字符与正则表达式一起使用,但它是一种奇怪的格式,我没有这些字符,例如'\«'
。 此外,它们都不使用ASCII以及非ASCII字符。 最后,python文档对正则表达式中的unicode主题非常清楚......有关标志的事情......我不知道。 有人可以帮忙吗?
这是我目前的用法,它没有做我想要的:
re.sub('\\xc2\\xad\s\d+\s\\xc2\\xad\s\\x0c', '', my_str)
而不是找出具体的不必要的字符,你可以删除一切不想要的东西:
re.sub('[^\\s!-~]', '', my_str)
这会丢弃所有字符:
!
是第一个可打印的字符, ~
是小数点后的最后一个128) 如果需要,您可以包含更多字符 - 只需调整字符类。
我有同样的问题,我知道这不是有效的方式,但在我的情况下工作
result = re.sub(r"\\" ,",x,x",result)
result = re.sub(r",x,xu00ad" ,"",result)
result = re.sub(r",x,xu" ,"\\u",result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.