-1
我嘗試這種代碼[PyPy 5.1.2與5.3.1 GCC 20160413]Pypy的Unicode字符串分割
hiragana = "あえいおう"
regular = "aeiou"
mixed = "あえいおうaeiou"
print hiragana.split("い")
# ['\xe3\x81\x82\xe3\x81\x88', '\xe3\x81\x8a\xe3\x81\x86']
print regular.split("i")
# ['ae', 'ou']
我要拆分的混合串得到這個。
# [ "\xe3\x81\x82\xe3\x81\x88", "\xe3\x81\x8a\xe3\x81\x86ae", "ou"]
re模塊會產生意外的結果。
print re.split("[いi]", mixed)
# ['', '', '\x82', '', '\x88', '', '', '', '', '\x8a', '', '\x86ae', 'ou']
問題:
巨蟒是否有使用多個分隔符的功能分裂?
不要試圖在UTF-8字節上分割;你最好解碼爲unicode字符串對象* first *。 're.split(ur'[いi]',mixed.decode('utf8'))'。否則,將'い'放入'[..]'字符序列中告訴正則表達式在對該碼點進行編碼的3個字節中的任何一個上進行分割。 –
另一種方法是在單獨的字節序列上進行分割:'re.split(r'(?:い| i)',mixed)'(這樣可以在'い',*或*的三個UTF-8字節上分割'i'的單個字節)。 –