recherche

Maison  >  Questions et réponses  >  le corps du texte

python - Comment régulariser tous les caractères chinois dans une chaîne

这样算吗?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.

欧阳克欧阳克2754 Il y a quelques jours1069

répondre à tous(2)je répondrai

  • 習慣沉默

    習慣沉默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.

    Mise à jour

    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.

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我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

    répondre
    0
  • Annulerrépondre