Я хочу разделить бразильские имена на части. Однако есть такие имена, как ниже: "de"
, "da"
(и другие), которые не являются отдельными частями, и они всегда идут со следующим словом. Так что нормальный раскол не работает.
test1 = "Francisco da Sousa Rodrigues" #special split
test2 = "Emiliano Rodrigo Carrasco" #normal split
test3 = "Alberto de Francia" #special split
test4 = "Bruno Rezende" #normal split
Мой ожидаемый результат:
[Francisco, da Sousa, Rodrigues] #1
[Emiliano, Rodrigo, Carrasco] #2
[Alberto, de Francia] #3
[Bruno, Rezende] #4
В особых случаях я пробовал этот шаблон:
PATTERN = re.compile(r"\s(?=[da, de, do, dos, das])")
re.split(PATTERN, test1) (...)
но результат не тот, который я ожидал:
['Francisco', 'da Sousa Rodrigues'] #1
['Alberto', 'de Francia'] #3
Есть идея, как это исправить? Есть ли способ использовать один шаблон для "нормального" и "особого" случая?