import re dane = [" Piotr Adam Fulmański ", "Piotr Adam Fulmański", "Piotr Adam Fulmański", "Piotr Fulmański", "Piotr Fulmański", '''Piotr Adam Fulmański''', '''Piotr Adam Fulmański'''] def parse(dane): for d in dane: d = d.strip() d = d.replace("\n", " ") d = re.sub(r" +", ' ', d, flags=re.M) print(f">{d}<") onePersonData = d.split() if len(onePersonData) == 2: imie = onePersonData[0] nazwisko = onePersonData[1] print(f"i={imie} n={nazwisko}") elif len(onePersonData) == 3: imie1 = onePersonData[0] imie2 = onePersonData[1] nazwisko = onePersonData[2] print(f"i1={imie1} i2={imie2} n={nazwisko}") def parse2(dane): for d in dane: d = d.strip() d = d.replace("\n", " ") d = re.sub(r" +", ' ', d, flags=re.M) print(f">{d}<") match = re.search(r"(?P\w+) ((?P\w+) )?(?P\w+)", d) if match: d = match.groupdict() if d["imie2"] is None: imie = d["imie"] nazwisko = d["nazwisko"] print(f"i={imie} n={nazwisko}") else: imie1 = d["imie"] imie2 = d["imie2"] nazwisko = d["nazwisko"] print(f"i1={imie1} i2={imie2} n={nazwisko}") #parse(dane) parse2(dane)