这样算吗?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.
我这里假设你需要匹配的文本为
s
:这里的
decode('utf8')
是怕s的值为类似\x66\x77\x88
这样的Unicode散列。另外,需要注意compile()
中ur
修饰符,u
为Unicode修饰符。PS:我是从这篇文章得到的启发。
Update
刚才看了下楼下说的,确实用Python 3就不存在输出为Unicode散列的情况了,以下摘自此处
你用的是python2,
\uxxxx
是unicode字符,匹配后得到的是字节
串,print出来是各个字节值。换python
3
就没这个问题了