Я пытаюсь разобрать несколько строк документа.
Пример docstrings:
Test if a column field is larger than a given value
This function can also be called as an operator using the '>' syntax
Arguments:
- DbColumn self
- string or float value: the value to compare to
in case of string: lexicographic comparison
in case of float: numeric comparison
Returns:
DbWhere object
Обе части Arguments
и Returns
являются необязательными. Я хочу, чтобы мой regex возвращал в качестве групп описание (первые строки), часть Arguments
(если присутствует) и часть Returns
(если присутствует).
Регекс, который у меня есть сейчас:
m = re.search('(.*)(Arguments:.*)(Returns:.*)', s, re.DOTALL)
работает в случае присутствия всех трех частей, но не работает, как только Arguments
или Returns
части отсутствуют. Я пробовал несколько вариантов с нежадными модификаторами типа ???
но безрезультатно.
Edit: Когда присутствуют части Arguments
и Returns
, я бы хотел, чтобы совпадал только текст после Arguments:
и Returns:
соответственно.
Спасибо!