Ho trovato alcune risposte online, ma non ho esperienza con le espressioni regolari, che credo sia quello che serve qui.
Ho una stringa che deve essere divisa da un ';' o ', ' Cioè, deve essere o un punto e virgola o una virgola seguita da uno spazio. Le singole virgole senza spazi finali dovrebbero essere lasciate intatte
Esempio di stringa:
"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"
dovrebbe essere suddivisa in una lista contenente quanto segue:
('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]')
Per fortuna, Python ha questo built-in :)
import re
re.split('; |, ',str)
Aggiornamento:
Dopo il tuo commento:
>>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']