# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?P<smlouva>[0-9]{10})\s(?:|(?P<flotila>[0-9]{10})\s)(?P<kod>[A-Z0-9]{3})\s(?<rc_ic>[0-9]+)\s(?<klient>\S+ \S+)\s(?P<zaklad>-?[0-9 ]+,[0-9]{2})\s(?P<od>[0-9.]+)\s(?P<do>[0-9.]+)\s(?P<zarazeni>\S+)\s(?P<provize>-?[0-9 ]+,[0-9]{2})"
test_str = ("Získatelská-život\n"
"Smlouva č. Flotila/pův.čps Kód RČ/IČ Klient Základ Období od. Období do. Zařazení Provize\n"
"1442225650 7BN 8508142236 Šxxxx Rxxx 7 116,00 01.08.2018 01.08.2019 získatelská 10 674,00\n"
"1442226302 7BN 8559150666 Paxxxxxxx Jxxx 19 800,00 01.08.2018 01.08.2019 získatelská 29 700,00\n"
"1442226325 7BN 9411250057 Mxxxx Dxxxx 7 920,00 01.08.2018 01.08.2019 získatelská 11 880,00\n"
"1442230798 7BN 7309170572 Kxxxxx Mxxx 6 720,00 01.08.2018 01.08.2019 získatelská 10 080,00\n"
"Získatelská-neživot\n"
"Smlouva č. Flotila/pův.čps Kód RČ/IČ Klient Základ Období od. Období do. Zařazení Provize\n"
"3951263358 1BB 9451055141 Bxxxxxx Lxxx 860,00 17.05.2018 17.05.2019 získatelská 93,00\n"
"3951291767 1BB 6852200333 Kxxxxxxx Mxxxx 1 210,00 20.07.2018 20.07.2019 získatelská 131,00\n"
"3951289137 1BD 61491853 Mxxxxx HxxxxÍ 16 510,00 12.07.2018 12.07.2019 získatelská 7 925,00\n\n"
"8930218318 8602948105 TR7 45798052 xxx s.r.o. / G.x.x.x., xx./ 5 950,00 04.08.2018 04.08.2019 pečovatelská 893,00\n"
"8930219821 8602951021 TR7 24684911 xx Šxxxxx s.r.o. -14 455,00 03.08.2018 03.08.2019 pečovatelská -2 168,00\n\n"
"3951263358 8602951021 1BB 9451055141 Bxxxxxx Lucie 860,00 17.05.2018 17.05.2019 získatelská 93,00")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html