Der folgende Code gibt alle benannten Gruppen zurück, die in einem Muster verwendet werden.
import re
pattern = r"(?Pdef (?P\w+)\s*\((.*?)\):)|(?P\w+)"
regex = re.compile(pattern)
for name in sorted(
regex.groupindex,
key = regex.groupindex.get
):
print(name)
Hier ist die entsprechende Ausgabe.
DEF_FUNC
NAME_FUNC
OTHERS
Ich würde auch gerne die entsprechenden Muster haben, um die folgende Ausgabe zu erhalten.
DEF_FUNC --> def (?P\w+)\s*\((.*?)\)
NAME_FUNC --> \w+
OTHERS --> \w+
Gibt es einen trickigen Weg, das zu erreichen, ohne es "von Hand" über Regex-Suchen im Mustertext zu tun?