suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Python – So regulieren Sie alle chinesischen Zeichen in einer Zeichenfolge

这样算吗?121238asdf<img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=da0493cd90ef76c6d0d2fb23ad14fdf6/e483aa4bd11373f0bddb2e73a40f4bfbf9ed04b1.jpg" width="560" height="420">

Die Zeichenfolge ist wie oben, der Typ ist „str“ und die chinesischen Zeichen müssen regelmäßig erhalten werden. Als ich zuvor [u4e00-u9fa5] verwendet habe, bekam ich immer noch eine Liste mit Symbolen und Zahlen auf Englisch. Bitte bringen Sie mir die richtige Haltung bei. Sag mir auch, wo ich einen Fehler gemacht habe...

pattern = re.compile(r'[\u4E00-\u9FA5]')
print pattern.findall(x[1])

Das habe ich geschrieben ... aber das zurückgegebene Ergebnis enthält keine chinesischen Schriftzeichen, sondern andere Schriftzeichen außer chinesischen Schriftzeichen.

欧阳克欧阳克2717 Tage vor1041

Antworte allen(2)Ich werde antworten

  • 習慣沉默

    習慣沉默2017-06-22 11:53:45

    我这里假设你需要匹配的文本为s

    pattern = re.compile(ur"[\u4e00-\u9fa5]")
    print pattern.findall(s.decode('utf8'))

    这里的decode('utf8')是怕s的值为类似\x66\x77\x88这样的Unicode散列。另外,需要注意compile()ur修饰符,u为Unicode修饰符。

    PS:我是从这篇文章得到的启发。

    Update

    刚才看了下楼下说的,确实用Python 3就不存在输出为Unicode散列的情况了,以下摘自此处

    Unicode 字符串

    在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。

    在Python3中,所有的字符串都是Unicode字符串。

    Antwort
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-22 11:53:45

    你用的是python2,\uxxxx是unicode字符,匹配后得到的是字节串,print出来是各个字节值。

    换python3 就没这个问题了

    Antwort
    0
  • StornierenAntwort