Sto tentando di analizzare alcune docstring.regex: stringa con parti opzionali
un esempio 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
Entrambe le parti Arguments
e Returns
sono opzionali. Voglio che la mia espressione regolare restituisca come gruppi la descrizione (prime righe), la parte Arguments
(se presente) e la parte Returns
(se presente).
L'espressione regolare che ho ora è:
m = re.search('(.*)(Arguments:.*)(Returns:.*)', s, re.DOTALL)
e lavora nel caso in cui tutte e tre le parti sono presenti, ma non riesce più presto Arguments
oi Returns
parti non sono disponibili. Ho provato diverse varianti con i modificatori non golosi come ??
ma senza alcun risultato.
Edit: Quando le parti Arguments
e Returns
sono presenti, in realtà ho vorrebbe solo per corrispondere al testo dopo rispettivamente Arguments:
e Returns:
.
Grazie!
L'ordine è sempre corretto? I. e., È 'Arguments' sempre dopo il testo standard e prima di' Returns'? –
Sì, l'ordine è sempre corretto. – BioGeek