Я пытаюсь разобрать некоторые docstrings.regex: string с дополнительными частями
В качестве примера это строки документации:
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
детали не являются обязательными. Я хочу, чтобы мое регулярное выражение возвращало как группы описание (первые строки), часть Arguments
(если имеется) и часть Returns
(если имеется).
Регулярное выражение У меня сейчас:
m = re.search('(.*)(Arguments:.*)(Returns:.*)', s, re.DOTALL)
и работает в случае, если все три части присутствуют, но не как только Arguments
или Returns
части не доступны. Я пробовал несколько вариантов с неживыми модификаторами, такими как ??
, но безрезультатно.
Edit: Когда Arguments
и Returns
части присутствуют, я на самом деле хотел бы только, чтобы соответствовать тексту после Arguments:
и Returns:
соответственно.
Спасибо!
Является ли заказ всегда фиксированным? I. e., «Аргументы» всегда после стандартного текста и перед «Возвращает»? –
Да, заказ всегда исправлен. – BioGeek