Rumah > Soal Jawab > teks badan
这样算吗?121238asdf<img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=da0493cd90ef76c6d0d2fb23ad14fdf6/e483aa4bd11373f0bddb2e73a40f4bfbf9ed04b1.jpg" width="560" height="420">
Rentetan adalah seperti di atas, jenisnya ialah 'str', dan aksara Cina mesti diperolehi mengikut keteraturan. Apabila saya menggunakan [u4e00-u9fa5] sebelum ini, saya masih mendapat senarai simbol dan nombor dalam bahasa Inggeris. Tolong ajar saya postur yang betul. Juga, beritahu saya di mana saya membuat kesilapan...
pattern = re.compile(r'[\u4E00-\u9FA5]')
print pattern.findall(x[1])
Ini yang saya tulis...tetapi hasil yang dikembalikan tidak mempunyai aksara Cina, tetapi aksara lain kecuali aksara Cina.
習慣沉默2017-06-22 11:53:45
Saya menganggap di sini bahawa teks yang anda perlu padankan ialah s
:
pattern = re.compile(ur"[\u4e00-\u9fa5]")
print pattern.findall(s.decode('utf8'))
decode('utf8')
是怕s的值为类似x66x77x88
这样的Unicode散列。另外,需要注意compile()
中ur
修饰符,u
di sini ialah pengubah suai Unikod.
PS: Saya terinspirasi oleh artikel ini.
Saya baru sahaja membaca apa yang dikatakan di tingkat bawah Memang benar bahawa dengan Python 3, outputnya ialah cincangan Unicode yang berikut dipetik dari sini
Rentetan UnicodeDalam Python2, rentetan biasa disimpan sebagai kod ASCII 8-bit, manakala rentetan Unicode disimpan sebagai rentetan unicode 16-bit, yang boleh mewakili lebih banyak set aksara. Sintaks yang digunakan adalah untuk mengawal rentetan dengan u.
Dalam Python3, semua rentetan adalah rentetan Unicode.
balas0
女神的闺蜜爱上我2017-06-22 11:53:45
Anda menggunakan python2, uxxxx
是unicode字符,匹配后得到的是字节
String, apa yang dicetak ialah setiap nilai bait.
Tukar kepada python3
dan masalah ini akan hilang