import re s="""example0@domain.tld:passw0rd ex.a.m-pl_e1@domain.tld;p@££w0r46& 0-0-0 ex.a.m-pl_e1@domain.tld p@££w0r46& ex.a.m-pl_e1@domain.tld:00-00-00;p@££w0r46& 00-00-00:username:password username:p@££w0r46& username p@££w0r46&""" rx = re.compile(r'[:; ]') rx_email = re.compile(r'\S+@\S+\.\S+$') for line in s.splitlines(): fields = rx.split(line) email = '' id = '' for field in fields: if rx_email.match(field): email = field elif field != fields[-1]: id = field password = fields[-1] print("Username: '{}', email: '{}', password: '{}'".format(id, email, password))
Standard input is empty
Username: '', email: 'example0@domain.tld', password: 'passw0rd' Username: '', email: 'ex.a.m-pl_e1@domain.tld', password: 'p@££w0r46&' Username: '0-0-0', email: 'ex.a.m-pl_e1@domain.tld', password: 'p@££w0r46&' Username: '00-00-00', email: 'ex.a.m-pl_e1@domain.tld', password: 'p@££w0r46&' Username: 'username', email: '', password: 'password' Username: 'username', email: '', password: 'p@££w0r46&' Username: 'username', email: '', password: 'p@££w0r46&'