Python – So regulieren Sie alle chinesischen Zeichen in einer Zeichenfolge
欧阳克
欧阳克 2017-06-22 11:51:45
0
2
1039
这样算吗?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.

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

Antworte allen(2)
習慣沉默

我这里假设你需要匹配的文本为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字符串。

女神的闺蜜爱上我

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

换python3 就没这个问题了

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage