繁体   English   中英

在python正则表达式中使用unicode字符的正确方法是什么

[英]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)

这会丢弃所有字符:

  • 空格(空格,制表符,换行符等)
  • 可打印的“普通”ascii字符( !是第一个可打印的字符, ~是小数点后的最后一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM