Lebih
Split string dengan beberapa pembatas di Python
Saya menemukan beberapa jawaban secara online, tapi saya tidak punya pengalaman dengan ekspresi reguler, yang saya percaya adalah apa yang dibutuhkan di sini.
Aku punya string yang perlu dibagi dengan baik ';' atau ', ' Artinya, itu telah menjadi salah satu tanda titik koma atau koma diikuti dengan spasi. Individu koma tanpa spasi tambahan harus dibiarkan tak tersentuh
Contoh string:
"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"
harus dipecah ke dalam sebuah daftar yang berisi sebagai berikut:
('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]')
427
5
Untungnya, Python memiliki built-in :)
Update:
Berikut komentar anda:
Melakukan
str.mengganti('; ', ', ')
dan kemudianstr.split(', ')
Berikut ini's cara yang aman untuk setiap iterable dari pembatas, menggunakan ekspresi reguler:
re.melarikan diri memungkinkan untuk membangun pola secara otomatis dan memiliki pembatas melarikan diri baik-baik.
Berikut ini's solusi ini sebagai fungsi untuk copy-paste kesenangan:
Jika anda're akan membagi sering menggunakan pembatas, mengkompail ekspresi reguler anda terlebih dahulu seperti yang dijelaskan dan gunakan
RegexObject.split
.Dalam menanggapi Jonathan's jawaban di atas, ini hanya tampaknya bekerja untuk beberapa pembatas. Misalnya:
Dengan menempatkan pembatas dalam kurung tampaknya untuk bekerja lebih efektif.
Ini adalah bagaimana regex terlihat seperti: