-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'的单个字节)。 –