# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(\d)\n([\d.]+)\n([\d, ]+)\n([\d, ]+)\n([\d, ]+)\n([\d, ]+)\n([\d,]+)\n([-\d, ]+)$"
test_str = ("№;Дата;Месечна вноска;Вноска главница;Вноска лихва;Остатък главница;Такси и комисионни;Паричен поток\n"
"0\n"
"01.06.2021\n"
"0,00\n"
"0,00\n"
"0,00\n"
"140 000,00\n"
"246,00\n"
"139 754,00\n"
"1\n"
"01.07.2021\n"
"1 610,54\n"
"1 318,87\n"
"291,67\n"
"140 000,00\n"
"2,50\n"
"-1 613,04\n"
"2\n"
"01.08.2021\n"
"1 610,54\n"
"1 321,62\n"
"288,92\n"
"138 681,13\n"
"2,50\n"
"-1 613,04\n"
"3\n"
"01.09.2021\n"
"1 610,54\n"
"1 324,37\n"
"286,17\n"
"137 359,51\n"
"2,50\n"
"-1 613,04\n"
"4\n"
"01.10.2021\n"
"1 610,54\n"
"1 327,13\n"
"283,41\n"
"136 035,14\n"
"2,50\n"
"-1 613,04\n"
"5\n"
"01.11.2021\n"
"1 610,54\n"
"1 329,90\n"
"280,64\n"
"134 708,01\n"
"2,50\n"
"-1 613,04\n"
"6\n"
"01.12.2021\n"
"1 610,54\n"
"1 332,67\n"
"277,87\n"
"133 378,11\n"
"2,50\n"
"-1 613,04\n"
"7\n"
"01.01.2022\n"
"1 610,54\n"
"1 335,45\n"
"275,09\n"
"132 045,44\n"
"2,50\n"
"-1 613,04\n"
"8\n"
"01.02.2022\n"
"1 610,54\n"
"1 338,23\n"
"272,31\n"
"130 709,99\n"
"2,50\n"
"-1 613,04\n"
"9\n"
"01.03.2022\n"
"1 610,54\n"
"1 341,02\n"
"269,52\n"
"129 371,76\n"
"2,50\n"
"-1 613,04\n"
"10\n"
"01.04.2022\n"
"1 610,54\n"
"1 343,81\n"
"266,73\n"
"128 030,74\n"
"2,50\n"
"-1 613,04\n"
"11\n"
"01.05.2022\n"
"1 610,54\n"
"1 346,61\n"
"263,93\n"
"126 686,93\n"
"2,50\n"
"-1 613,04\n"
"12\n"
"01.06.2022\n"
"1 610,54\n"
"1 349,41\n"
"261,13\n"
"125 340,32\n"
"2,50\n"
"-1 613,04\n"
"13\n"
"01.07.2022\n"
"1 610,54\n"
"1 352,23\n"
"258,31\n"
"123 990,91\n"
"2,50\n"
"-1 613,04\n"
"14\n"
"01.08.2022\n"
"1 610,54\n"
"1 355,04\n"
"255,50\n"
"122 638,68\n"
"2,50\n"
"-1 613,04\n"
"15\n"
"01.09.2022\n"
"1 610,54\n"
"1 357,87\n"
"252,67\n"
"121 283,64\n"
"2,50\n"
"-1 613,04\n"
"16\n"
"01.10.2022\n"
"1 610,54\n"
"1 360,69\n"
"249,85\n"
"119 925,77\n"
"2,50\n"
"-1 613,04\n"
"17\n"
"01.11.2022\n"
"1 610,54\n"
"1 363,53\n"
"247,01\n"
"118 565,08\n"
"2,50\n"
"-1 613,04\n"
"18\n"
"01.12.2022\n"
"1 610,54\n"
"1 366,37\n"
"244,17\n"
"117 201,55\n"
"2,50\n"
"-1 613,04\n"
"19\n"
"01.01.2023\n"
"1 610,54\n"
"1 369,22\n"
"241,32\n"
"115 835,18\n"
"2,50\n"
"-1 613,04\n"
"20\n"
"01.02.2023\n"
"1 610,54\n"
"1 372,07\n"
"238,47\n"
"114 465,96\n"
"2,50\n"
"-1 613,04\n"
"21\n"
"01.03.2023\n"
"1 610,54\n"
"1 374,93\n"
"235,61\n"
"113 093,89\n"
"2,50\n"
"-1 613,04\n"
"22\n"
"01.04.2023\n"
"1 610,54\n"
"1 377,79\n"
"232,75\n"
"111 718,96\n"
"2,50\n"
"-1 613,04\n"
"23\n"
"01.05.2023\n"
"1 610,54\n"
"1 380,66\n"
"229,88\n"
"110 341,17\n"
"2,50\n"
"-1 613,04\n"
"24\n"
"01.06.2023\n"
"1 610,54\n"
"1 383,54\n"
"227,00\n"
"108 960,51\n"
"2,50\n"
"-1 613,04\n"
"25\n"
"01.07.2023\n"
"1 610,54\n"
"1 386,42\n"
"224,12\n"
"107 576,97\n"
"2,50\n"
"-1 613,04\n"
"26\n"
"01.08.2023\n"
"1 610,54\n"
"1 389,31\n"
"221,23\n"
"106 190,55\n"
"2,50\n"
"-1 613,04\n"
"27\n"
"01.09.2023\n"
"1 610,54\n"
"1 392,20\n"
"218,34\n"
"104 801,24\n"
"2,50\n"
"-1 613,04\n"
"28\n"
"01.10.2023\n"
"1 610,54\n"
"1 395,10\n"
"215,44\n"
"103 409,04\n"
"2,50\n"
"-1 613,04\n"
"29\n"
"01.11.2023\n"
"1 610,54\n"
"1 398,01\n"
"212,53\n"
"102 013,94\n"
"2,50\n"
"-1 613,04\n"
"30\n"
"01.12.2023\n"
"1 610,54\n"
"1 400,92\n"
"209,62\n"
"100 615,93\n"
"2,50\n"
"-1 613,04\n"
"31\n"
"01.01.2024\n"
"1 610,54\n"
"1 403,84\n"
"206,70\n"
"99 215,01\n"
"2,50\n"
"-1 613,04\n"
"32\n"
"01.02.2024\n"
"1 610,54\n"
"1 406,77\n"
"203,77\n"
"97 811,17\n"
"2,50\n"
"-1 613,04\n"
"33\n"
"01.03.2024\n"
"1 610,54\n"
"1 409,70\n"
"200,84\n"
"96 404,40\n"
"2,50\n"
"-1 613,04\n"
"34\n"
"01.04.2024\n"
"1 610,54\n"
"1 412,63\n"
"197,91\n"
"94 994,70\n"
"2,50\n"
"-1 613,04\n"
"35\n"
"01.05.2024\n"
"1 610,54\n"
"1 415,58\n"
"194,96\n"
"93 582,07\n"
"2,50\n"
"-1 613,04\n"
"36\n"
"01.06.2024\n"
"1 610,54\n"
"1 418,53\n"
"192,01\n"
"92 166,49\n"
"2,50\n"
"-1 613,04\n"
"37\n"
"01.07.2024\n"
"1 610,54\n"
"1 421,48\n"
"189,06\n"
"90 747,96\n"
"2,50\n"
"-1 613,04\n"
"38\n"
"01.08.2024\n"
"1 610,54\n"
"1 424,44\n"
"186,10\n"
"89 326,48\n"
"2,50\n"
"-1 613,04\n"
"39\n"
"01.09.2024\n"
"1 610,54\n"
"1 427,41\n"
"183,13\n"
"87 902,04\n"
"2,50\n"
"-1 613,04\n"
"40\n"
"01.10.2024\n"
"1 610,54\n"
"1 430,38\n"
"180,16\n"
"86 474,63\n"
"2,50\n"
"-1 613,04\n"
"41\n"
"01.11.2024\n"
"1 610,54\n"
"1 433,36\n"
"177,18\n"
"85 044,25\n"
"2,50\n"
"-1 613,04\n"
"42\n"
"01.12.2024\n"
"1 610,54\n"
"1 436,35\n"
"174,19\n"
"83 610,89\n"
"2,50\n"
"-1 613,04\n"
"43\n"
"01.01.2025\n"
"1 610,54\n"
"1 439,34\n"
"171,20\n"
"82 174,54\n"
"2,50\n"
"-1 613,04\n"
"44\n"
"01.02.2025\n"
"1 610,54\n"
"1 442,34\n"
"168,20\n"
"80 735,20\n"
"2,50\n"
"-1 613,04\n"
"45\n"
"01.03.2025\n"
"1 610,54\n"
"1 445,35\n"
"165,19\n"
"79 292,86\n"
"2,50\n"
"-1 613,04\n"
"46\n"
"01.04.2025\n"
"1 610,54\n"
"1 448,36\n"
"162,18\n"
"77 847,51\n"
"2,50\n"
"-1 613,04\n"
"47\n"
"01.05.2025\n"
"1 610,54\n"
"1 451,38\n"
"159,16\n"
"76 399,15\n"
"2,50\n"
"-1 613,04\n"
"48\n"
"01.06.2025\n"
"1 610,54\n"
"1 454,40\n"
"156,14\n"
"74 947,77\n"
"2,50\n"
"-1 613,04\n"
"49\n"
"01.07.2025\n"
"1 610,54\n"
"1 457,43\n"
"153,11\n"
"73 493,37\n"
"2,50\n"
"-1 613,04\n"
"50\n"
"01.08.2025\n"
"1 610,54\n"
"1 460,47\n"
"150,07\n"
"72 035,94\n"
"2,50\n"
"-1 613,04\n"
"51\n"
"01.09.2025\n"
"1 610,54\n"
"1 463,51\n"
"147,03\n"
"70 575,47\n"
"2,50\n"
"-1 613,04\n"
"52\n"
"01.10.2025\n"
"1 610,54\n"
"1 466,56\n"
"143,98\n"
"69 111,96\n"
"2,50\n"
"-1 613,04\n"
"53\n"
"01.11.2025\n"
"1 610,54\n"
"1 469,61\n"
"140,93\n"
"67 645,40\n"
"2,50\n"
"-1 613,04\n"
"54\n"
"01.12.2025\n"
"1 610,54\n"
"1 472,67\n"
"137,87\n"
"66 175,79\n"
"2,50\n"
"-1 613,04\n"
"55\n"
"01.01.2026\n"
"1 610,54\n"
"1 475,74\n"
"134,80\n"
"64 703,12\n"
"2,50\n"
"-1 613,04\n"
"56\n"
"01.02.2026\n"
"1 610,54\n"
"1 478,82\n"
"131,72\n"
"63 227,38\n"
"2,50\n"
"-1 613,04\n"
"57\n"
"01.03.2026\n"
"1 610,54\n"
"1 481,90\n"
"128,64\n"
"61 748,56\n"
"2,50\n"
"-1 613,04\n"
"58\n"
"01.04.2026\n"
"1 610,54\n"
"1 484,98\n"
"125,56\n"
"60 266,66\n"
"2,50\n"
"-1 613,04\n"
"59\n"
"01.05.2026\n"
"1 610,54\n"
"1 488,08\n"
"122,46\n"
"58 781,68\n"
"2,50\n"
"-1 613,04\n"
"60\n"
"01.06.2026\n"
"1 610,54\n"
"1 491,18\n"
"119,36\n"
"57 293,60\n"
"2,50\n"
"-1 613,04\n"
"61\n"
"01.07.2026\n"
"1 610,54\n"
"1 494,28\n"
"116,26\n"
"55 802,42\n"
"2,50\n"
"-1 613,04\n"
"62\n"
"01.08.2026\n"
"1 610,54\n"
"1 497,40\n"
"113,14\n"
"54 308,14\n"
"2,50\n"
"-1 613,04\n"
"63\n"
"01.09.2026\n"
"1 610,54\n"
"1 500,52\n"
"110,02\n"
"52 810,74\n"
"2,50\n"
"-1 613,04\n"
"64\n"
"01.10.2026\n"
"1 610,54\n"
"1 503,64\n"
"106,90\n"
"51 310,22\n"
"2,50\n"
"-1 613,04\n"
"65\n"
"01.11.2026\n"
"1 610,54\n"
"1 506,78\n"
"103,76\n"
"49 806,58\n"
"2,50\n"
"-1 613,04\n"
"66\n"
"01.12.2026\n"
"1 610,54\n"
"1 509,92\n"
"100,62\n"
"48 299,80\n"
"2,50\n"
"-1 613,04\n"
"67\n"
"01.01.2027\n"
"1 610,54\n"
"1 513,06\n"
"97,48\n"
"46 789,88\n"
"2,50\n"
"-1 613,04\n"
"68\n"
"01.02.2027\n"
"1 610,54\n"
"1 516,21\n"
"94,33\n"
"45 276,82\n"
"2,50\n"
"-1 613,04\n"
"69\n"
"01.03.2027\n"
"1 610,54\n"
"1 519,37\n"
"91,17\n"
"43 760,61\n"
"2,50\n"
"-1 613,04\n"
"70\n"
"01.04.2027\n"
"1 610,54\n"
"1 522,54\n"
"88,00\n"
"42 241,24\n"
"2,50\n"
"-1 613,04\n"
"71\n"
"01.05.2027\n"
"1 610,54\n"
"1 525,71\n"
"84,83\n"
"40 718,70\n"
"2,50\n"
"-1 613,04\n"
"72\n"
"01.06.2027\n"
"1 610,54\n"
"1 528,89\n"
"81,65\n"
"39 192,99\n"
"2,50\n"
"-1 613,04\n"
"73\n"
"01.07.2027\n"
"1 610,54\n"
"1 532,07\n"
"78,47\n"
"37 664,10\n"
"2,50\n"
"-1 613,04\n"
"74\n"
"01.08.2027\n"
"1 610,54\n"
"1 535,26\n"
"75,28\n"
"36 132,03\n"
"2,50\n"
"-1 613,04\n"
"75\n"
"01.09.2027\n"
"1 610,54\n"
"1 538,46\n"
"72,08\n"
"34 596,77\n"
"2,50\n"
"-1 613,04\n"
"76\n"
"01.10.2027\n"
"1 610,54\n"
"1 541,67\n"
"68,87\n"
"33 058,31\n"
"2,50\n"
"-1 613,04\n"
"77\n"
"01.11.2027\n"
"1 610,54\n"
"1 544,88\n"
"65,66\n"
"31 516,64\n"
"2,50\n"
"-1 613,04\n"
"78\n"
"01.12.2027\n"
"1 610,54\n"
"1 548,10\n"
"62,44\n"
"29 971,76\n"
"2,50\n"
"-1 613,04\n"
"79\n"
"01.01.2028\n"
"1 610,54\n"
"1 551,32\n"
"59,22\n"
"28 423,66\n"
"2,50\n"
"-1 613,04\n"
"80\n"
"01.02.2028\n"
"1 610,54\n"
"1 554,56\n"
"55,98\n"
"26 872,34\n"
"2,50\n"
"-1 613,04\n"
"81\n"
"01.03.2028\n"
"1 610,54\n"
"1 557,79\n"
"52,75\n"
"25 317,78\n"
"2,50\n"
"-1 613,04\n"
"82\n"
"01.04.2028\n"
"1 610,54\n"
"1 561,04\n"
"49,50\n"
"23 759,99\n"
"2,50\n"
"-1 613,04\n"
"83\n"
"01.05.2028\n"
"1 610,54\n"
"1 564,29\n"
"46,25\n"
"22 198,95\n"
"2,50\n"
"-1 613,04\n"
"84\n"
"01.06.2028\n"
"1 610,54\n"
"1 567,55\n"
"42,99\n"
"20 634,66\n"
"2,50\n"
"-1 613,04\n"
"85\n"
"01.07.2028\n"
"1 610,54\n"
"1 570,82\n"
"39,72\n"
"19 067,11\n"
"2,50\n"
"-1 613,04\n"
"86\n"
"01.08.2028\n"
"1 610,54\n"
"1 574,09\n"
"36,45\n"
"17 496,29\n"
"2,50\n"
"-1 613,04\n"
"87\n"
"01.09.2028\n"
"1 610,54\n"
"1 577,37\n"
"33,17\n"
"15 922,20\n"
"2,50\n"
"-1 613,04\n"
"88\n"
"01.10.2028\n"
"1 610,54\n"
"1 580,65\n"
"29,89\n"
"14 344,83\n"
"2,50\n"
"-1 613,04\n"
"89\n"
"01.11.2028\n"
"1 610,54\n"
"1 583,95\n"
"26,59\n"
"12 764,18\n"
"2,50\n"
"-1 613,04\n"
"90\n"
"01.12.2028\n"
"1 610,54\n"
"1 587,25\n"
"23,29\n"
"11 180,23\n"
"2,50\n"
"-1 613,04\n"
"91\n"
"01.01.2029\n"
"1 610,54\n"
"1 590,55\n"
"19,99\n"
"9 592,98\n"
"2,50\n"
"-1 613,04\n"
"92\n"
"01.02.2029\n"
"1 610,54\n"
"1 593,87\n"
"16,67\n"
"8 002,43\n"
"2,50\n"
"-1 613,04\n"
"93\n"
"01.03.2029\n"
"1 610,54\n"
"1 597,19\n"
"13,35\n"
"6 408,56\n"
"2,50\n"
"-1 613,04\n"
"94\n"
"01.04.2029\n"
"1 610,54\n"
"1 600,52\n"
"10,02\n"
"4 811,37\n"
"2,50\n"
"-1 613,04\n"
"95\n"
"01.05.2029\n"
"1 610,54\n"
"1 603,85\n"
"6,69\n"
"3 210,85\n"
"2,50\n"
"-1 613,04\n"
"96\n"
"01.06.2029\n"
"1 610,35\n"
"1 607,00\n"
"3,35\n"
"1 607,00\n"
"2,50\n"
"-1 612,85")
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