Razdelitev niza z več ločili v programu Python

Na spletu sem našel nekaj odgovorov, vendar nimam izkušenj z regularnimi izrazi, ki jih po mojem mnenju potrebujemo.

Imam niz, ki ga je treba razdeliti z ';' ali ', ' To pomeni, da mora biti bodisi podpičje bodisi vejica, ki ji sledi presledek. Posamezne vejice brez presledka je treba pustiti nedotaknjene

Primer niza:

"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"

je treba razdeliti na seznam, ki vsebuje naslednje:

('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]') 
Rešitev

Na srečo ima Python to vgrajeno :)

import re
re.split('; |, ',str)

Update:
Po vašem komentarju:

>>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']
Komentarji (9)

Naredite str.replace('; ', ', ', ') in nato str.split(', ')

Komentarji (7)

Tako izgleda regex:

import re
# "semicolon or (a comma followed by a space)"
pattern = re.compile(r";|, ")

# "(semicolon or a comma) followed by a space"
pattern = re.compile(r"[;,] ")

print pattern.split(text)
Komentarji (1)