Извинения, если это излишне, но довольно глубокий поиск промежутков не выявил здесь ничего уместного.
У меня есть строка из (химической) базы данных, где разделители (запятые) иногда встречаются в элементах, которые янадеюсь разделить.Пример строки:
s = '2-Methyl-3-phythyl-1,4-naphthochinon,Vitamin, K1,Antihemorrhagic vitamin'
Правильное разделение в этом случае даст
splitS = ['2-Methyl-3-phythyl-1,4-naphthochinon', 'Vitamin, K1', 'Antihemorrhagic vitamin']
Я считаю, что самый точный способ, которым я могу это разработать, - разделить запятые, которые неесть пробел рядом с запятой, и которые далее не окружены 2 числами.Это оставило бы такие экземпляры, как '1,4' и 'Vitamin, K1', но разбило строку на правильные 3 химических названия.
Я пытался использовать RE безуспешно.Я могу опубликовать кое-что из того, что я пробовал, но это в значительной степени бесполезно.Помощь очень ценится.
РЕДАКТИРОВАТЬ: должны были включить это первоначально.Благодаря некоторому моему взлому и более элегантному решению @Borealid я правильно определил места для разделения, но получаю отвратительный вывод, такой как
>>> s = '2-Methyl-3-phythyl-1,4-naphthochinon,Vitamin, K1,Antihemorrhagic vitamin'
>>> pat = re.compile("([^\d\s],[^\d\s])|([^\s],[^\d\s])|([^\d\s],[^\s])")
>>> re.split(pat, s)
['2-Methyl-3-phythyl-1,4-naphthochino', 'n,V', None, None, 'itamin, K', None, '1,A', None, 'ntihemorrhagic vitamin']
Кажется, что должен быть способсначала определите правильные запятые для разделения, затем разделите запятую only , чтобы избежать искажения имен.
Еще раз спасибо