# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"((?:[1234]\s?)?[a-zа-я]+)(\s?\d+(?::(?:\d+[—–-]\d+|\d+)(?:,\d+[—–-]\d+|,\d+)*(?:;\s?\d+(?::(?:\d+[—–-]\d+|\d+)(?:,\d+[—–-]\d+|,\d+)*|;))*)?)"
test_str = ("За тази седмица прочетете\n"
"Римляни 5:12-21,13 1 Коринтяни 31:12-17; 1 Коринтяни 12:14-26; Ефесяни 6:11-17; 1 Коринтяни 15:12-18;1;\n"
"Адам и Исус\n"
"изход 1:1-2,3,4-0;1:1,2-3;3;\n"
"Неделя - 28 февруари\n"
"Въпреки че апостол Павел е известен със своето ясно изложение на евангелието, неговото обяснение на великата борба също е изключително ценно. В центъра на поученията му за благата вест са концентрирани следните основни идеи: ние сме „оправдани чрез вяра“ в Исус (Римляни 5:1), имаме пряк достъп до Бога и се „радваме поради надеждата“ (стих 2); а изпитанията вече не ни притесняват (стихове 3-5). Освен това ни дава обещанието, че „когато още бяхме грешници, Христос умря за нас“ (стих 8) и сега сме „спасени“ чрез живота и смъртта на Христос за нас. Освен това сме пощадени от Божия последен съд над греха (стихове 9, 10), а се радваме, че сме примирени с Него (стих 11).\n\n"
"Прочетете Римляни 5:12-21. Как тук ни е разкрита великата борба?\n"
"Матей 1:1; 2:3-6,17; 1chro 2:2 + rev 1:1; 2:3-6,17; +exod")
matches = re.finditer(regex, test_str, re.IGNORECASE)
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