-1
ich diesen Code ausprobieren in [PyPy 5.1.2 mit GCC 5.3.1 20160413]PyPy Unicode Split String
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']
Ich möchte das gemischte String aufgeteilt werden, dieses zu erhalten.
# [ "\xe3\x81\x82\xe3\x81\x88", "\xe3\x81\x8a\xe3\x81\x86ae", "ou"]
Das erneute Modul erzeugt ein unerwartetes Ergebnis.
print re.split("[いi]", mixed)
# ['', '', '\x82', '', '\x88', '', '', '', '', '\x8a', '', '\x86ae', 'ou']
Fragen:
Hat Python eine Split mehr Trennzeichen-Funktion?
Versuchen Sie nicht, auf UTF-8 Bytes zu teilen; Sie sollten besser in ein Unicode-String-Objekt * zuerst * dekodieren. 're.split (ur '[' i] ', mixed.decode (' utf8 '))'. Andernfalls wird durch Setzen von 'い' in eine '[..]' - Zeichenfolge die Regex auf jedes der 3 Bytes aufgeteilt, die diesen Codepunkt codieren. –
Die Alternative besteht darin, auf einzelne Bytefolgen zu splitten: 're.split (r '(?: い | i)', gemischt)' (also entweder auf die drei UTF-8 Bytes von 'い', * oder * aufteilen das einzelne Byte für "i"). –