2010-09-09 7 views
1

je capture la chaîne à partir d'un fichier source HTML en utilisant regex:Comment convertir une chaîne unicode comme 'u \ u4f60 \ u4f60' en u ' u4f60 u4f60' en Python?

f = open(rrfile, 'r') 
p = re.compile(r'"name":"([^"]+)","head":"([^"]+)"') 
match = re.findall(p, f.read()) 

Et j'ai essayé:

>>> u'\\u4f60\\u4f60'.replace('\\u', '\u') 
u'\\u4f60\\u4f60' 
>>> u'\\u4f60\\u4f60'.replace(u'\\u', '\u') 
u'\\u4f60\\u4f60' 
>>> u'\\u4f60\\u4f60'.replace('\\u', u'\u') 
File "<stdin>", line 1 
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: end of string in escape sequence 

pourrait-il être fait par str.replace()? Ou besoin de quelque chose de plus complexe?

+0

double possible de [chaîne d'entrée de fichier Python: comment gérer échappées caractères unicode] (http://stackoverflow.com/questions/2811174/python-file-input-string-how-to-handle- escaped-unicode-characters) – kennytm

Répondre

6
>>> u'\\u4f60\\u4f60'.decode('unicode_escape') 
u'\u4f60\u4f60' 
+0

+1 Vous apprenez quelque chose de nouveau tous les jours! – katrielalex

+0

Merci pour la réponse rapide et utile. – kols