# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^##api(?<apicont>.+?)##.+?Функция\s+(?<funcname>.+?)\((?<funcparam>.+?)\)\s+{"
test_str = ("##api\n"
"# @param лс - обязательный параметр. row_id ЛСа/дома/квартира\n"
"# @param наДату - обязательный параметр. Дата, на которую должена действовать УК\n"
"# @param результат - не обязательный параметр. Может быть только строкой (ЛСID, УКДатНач, УКДатКнц, ОрганизацияID, Название, Наименование, ДоговорID, Номер, ККС, ДоговорДатНач, ДоговорДатКнц, Объект_Организация, Объект_Договор), по умолчанию - пустая строка, определяет что вернуть в качестве результата, массив, конкретное поле или объект\n"
"# @param дом - не обязательный параметр. row_id дома, для проверки кеша\n"
"# @description возвращает массив с собранными данными об УК\n"
"##\n"
"Функция ПолучитьУКпоЛС(лс, наДату, ...) {\n\n"
"##api\n"
"# @param лс - обязательный параметр. row_id ЛСа/дома/квартира\n"
"# @param наДату - обязательный параметр. Дата, на которую должена действовать УК\n"
"# @param результат - не обязательный параметр. Может быть только строкой (ЛСID, УКДатНач, УКДатКнц, ОрганизацияID, Название, Наименование, ДоговорID, Номер, ККС, ДоговорДатНач, ДоговорДатКнц, Объект_Организация, Объект_Договор), по умолчанию - пустая строка, определяет что вернуть в качестве результата, массив, конкретное поле или объект\n"
"# @param дом - не обязательный параметр. row_id дома, для проверки кеша\n"
"# @description возвращает массив с собранными данными об УК\n"
"##\n"
"Функция ПолучитьУКпоЛС(лс, наДату, ...) {")
matches = re.search(regex, test_str, re.DOTALL | re.IGNORECASE | re.MULTILINE)
if matches:
print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group()))
for groupNum in range(0, len(matches.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.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