Osobiście uważam, że złożone regexy warto prostu dokumentować. Na przykład:
# clear links "[text](url)" -> "text"
value = re.sub(
(
'\[' # starting [
'(.*?)' # text
'\]' # closing ]
'\(' # starting (
'.*?' # url
'\)' # closing )
),
'\g<1>', # replace with first captured group
value,
)
Cokolwiek czytelniejsze od
value = re.sub('\[(.*?)\]\(.*?\)', '\g<1>', value)
Zgodnie z filozofią "programy powinno się pisać jakby były regularnie czytane przez człowieka i czasami wykonywane przez komputer". Tak, zgadza się, generalnie według tzw. "dobrych praktyk" nie należy komentować "oczywistych" instrukcji i coś takiego
i = i + 2 # add 2
jest raczej ewidentnie złe. Mam jednak wrażenie, że zasada ta nie do końca powinna obowiązywać w przypadku regexów, bo zbyt często mają one postać nieczytelnej zbitki symboli.