Я не знаю, можно ли научить простой команде синтаксического анализа или даже регулярному выражению делать то, что вы хотите. Некоторые случаи всегда будут неоднозначными. Например, если у вас есть имена «Mary Ann Steiner» и «Constantin Van Dyke», шаблоны точно такие же, но один должен быть разделен (2/1), а другой должен быть разделен (1/2).
Возможно, вы могли бы найти библиотеку, которая знает, как делать обоснованные догадки, основываясь на огромном словаре известных имен, но при этом не может ...
Я думаю, что в этом случае вам нужен человеческий мозг, который вводит данные, чтобы принимать некоторые решения, и указывать их во время ввода данных. По моему опыту, использование нескольких полей не так уж и медленно, если вы перемещаетесь с помощью клавиши табуляции вместо того, чтобы перемещаться. Вы также можете ввести данные, используя собственный разделитель, например:
Mary Ann,Steiner,2-3
Constantin,Van Dyke,4-2
Тогда вы запустили бы что-нибудь, что взорвало бы эти строки на основе "," и добавило бы элементы в вашу базу данных.
Если вы копируете / вставляете или извлекаете данные с внешнего сайта, другим вариантом будет просто разбить каждую строку, используя метод, который вы используете в настоящее время. Это должно работать для большинства записей, и если это не сработает, это будет очевидно - полученная запись будет иметь слишком много элементов. Вы можете иметь свой сценарий помечать только эти записи для вмешательства человека.