Maison > Questions et réponses > le corps du texte
这样算吗?121238asdf<img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=da0493cd90ef76c6d0d2fb23ad14fdf6/e483aa4bd11373f0bddb2e73a40f4bfbf9ed04b1.jpg" width="560" height="420">
La chaîne est comme ci-dessus, le type est 'str', et les caractères chinois doivent être obtenus par régularité. Lorsque j'utilisais [u4e00-u9fa5] auparavant, j'avais toujours une liste de symboles et de chiffres en anglais. S'il vous plaît, apprenez-moi la bonne posture. Aussi, dites-moi où j'ai fait une erreur...
pattern = re.compile(r'[\u4E00-\u9FA5]')
print pattern.findall(x[1])
C'est ce que j'ai écrit... mais le résultat renvoyé ne contient pas de caractères chinois, mais d'autres caractères à l'exception des caractères chinois.
習慣沉默2017-06-22 11:53:45
Je suppose ici que le texte que vous devez faire correspondre est s
:
pattern = re.compile(ur"[\u4e00-\u9fa5]")
print pattern.findall(s.decode('utf8'))
Le decode('utf8')
是怕s的值为类似x66x77x88
这样的Unicode散列。另外,需要注意compile()
中ur
修饰符,u
ici est le modificateur Unicode.
PS : je me suis inspiré de cet article.
Je viens de lire ce qui a été dit en bas. Il est vrai qu'avec Python 3, la sortie est un hachage Unicode. Ce qui suit est extrait d'ici
.Chaîne Unicode
Dans Python2, les chaînes ordinaires sont stockées sous forme de codes ASCII 8 bits, tandis que les chaînes Unicode sont stockées sous forme de chaînes Unicode 16 bits, qui peuvent représenter davantage de jeux de caractères. La syntaxe utilisée consiste à préfixer la chaîne avec u.
En Python3, toutes les chaînes sont des chaînes Unicode.
女神的闺蜜爱上我2017-06-22 11:53:45
Vous utilisez python2, uxxxx
是unicode字符,匹配后得到的是字节
String, ce qui est imprimé est la valeur de chaque octet.
Changez pour python3
et ce problème disparaîtra