Unicode字符和正则表达式

时间:2013-11-04 16:49:07

标签: python regex unicode

我正在尝试在Python中运行以下命令:

data = "&city=Zayas de Báscones;Zayas de Báscones;"
arr = re.findall(ur'[&]{1}\w{4}=[a-zA-ZA-Za-z£€ßçÇáàâäæãåèéêëîïíìôöòóøõûüùúÿñÁÀÂÄÆÃÅÈÉÊËÎÏÍÌÔÖÒÓØÕÛÜÙÚŸÑðÐ]+(?:[\s-][a-zA-ZA-Za-z£€ßçÇáàâäæãåèéêëîïíìôöòóøõûüùúÿñÁÀÂÄÆÃÅÈÉÊËÎÏÍÌÔÖÒÓØÕÛÜÙÚŸÑðÐ]+)*',data)
x = "".join(arr)
x = x.split('&city=')
print x

结果:

['', 'Zayas de B?scones']

如何获取unicode字符而不是问号?我一直试图在字符串的开头使用带有'u'字符的正则表达式模式(例如:u'pattern')以及patttern之前的'ur'。

1 个答案:

答案 0 :(得分:1)

如果您尝试打印x[1]

 print x[1]
 #output: Zayas de B?

现在,如果您将data字符串视为unicode。

data = u"&city=Zayas de Báscones;Zayas de Báscones;" # set it as unicode

如果您尝试打印x[1]

print x[1]
#output: Zayas de Báscones