![](/img/trans.png)
[英]How to include Non-ascii characters in regular expression in Python
[英]How do I get a regular expression to recognize non-ASCII characters as letters?
我正在从瑞典语的网页中提取信息。 此页面使用的字符如下:öäå。
我的问题是,当我打印信息时,öäå已经消失了。
我正在使用Beautiful Soup提取信息。 我认为问题是我在我提取的字符串上做了一堆正则表达式,例如location = re.sub(r'([^\\w])+', '', location)
以删除除了这些信。 在此之前,我猜美丽的汤编码了字符串,以便öäå变成/ x02 /,十六进制值。
所以,如果我是正确的,那么正则表达式正在移除öäå,对,我的意思是在正则表达式之后,唯一应该留下的十六进制字符是x,但是在我的页面上没有x而不是öäå,所以这小理论可能不正确? 无论如何,如果是对或错,你如何解决这个问题? 当我稍后将提取的信息打印到我的网页时,我在google app引擎中使用self.response.out.write()(不知道是否有帮助解决问题)
编辑:瑞典网站上的编码是utf-8,我的网站上的编码也是utf-8。 EDIT2:您可以使用ISO-8859-10 for Swedish,但根据谷歌浏览器,此特定网站上的编码为Unicode(utf-8)
始终使用unicode,并在必要时仅转换为编码表示。
对于这种特殊情况,您还需要使用re.U
标志,以便\\w
匹配unicode字母:
#coding: utf-8
import re
location = "öäå".decode('utf-8')
location = re.sub(r'([^\w])+', '', location, flags=re.U)
print location # prints öäå
如果您可以在每个步骤之前和之后转储字符串,这将有所帮助。
首先检查你的re.UNICODE
值,看看这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.