Tekenreeks met meerdere scheidingstekens splitsen in Python

Ik heb online wat antwoorden gevonden, maar ik heb geen ervaring met reguliere expressies, wat hier volgens mij wel nodig is.

Ik heb een string die moet worden gesplitst door ofwel een ';' of ', ' Dat wil zeggen, het moet ofwel een puntkomma ofwel een komma gevolgd door een spatie zijn. Afzonderlijke komma's zonder spaties achteraan moeten ongemoeid worden gelaten

Voorbeeld 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]"

moet worden gesplitst in een lijst die het volgende bevat:

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

Gelukkig heeft Python dit ingebouwd :)

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

Update:
Naar aanleiding van je opmerking:

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

Doe een str.replace('; ', ', ') en dan een str.split(', ')

Commentaren (7)

Dit is hoe de regex eruit ziet:

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)
Commentaren (1)