Der folgende Code gibt alle benannten Gruppen an, die in einem Muster verwendet werden.Muster, das einer benannten Gruppe zugeordnet ist
import re
pattern = r"(?P<DEF_FUNC>def (?P<NAME_FUNC>\w+)\s*\((.*?)\):)|(?P<OTHERS>\w+)"
regex = re.compile(pattern)
for name in sorted(
regex.groupindex,
key = regex.groupindex.get
):
print(name)
Hier ist der entsprechende Ausgang.
Ich möchte auch die entsprechenden Muster haben, um die folgende Ausgabe zu erhalten.
DEF_FUNC --> def (?P<NAME_FUNC>\w+)\s*\((.*?)\)
NAME_FUNC --> \w+
OTHERS --> \w+
Gibt es eine schwierige Art und Weise, das zu tun, ohne es „auf der Hand“ über Regex sucht in dem Mustertext zu tun?
tun Sie die Muster zusammen mit dem Ergebnis drucken? Ich denke, du musst deine Sachen kopieren ... das Problem ist, dass DEF_FUNC aus NAME_FUNC besteht und somit den Weg zum "Cheat" blockiert ... – zmo
Hallo. Ich möchte jedes Muster kennen, das einer benannten Gruppe zugeordnet ist. In meiner Frage ist das Drucken nur dazu da, die Ergebnisse zu sehen und zu testen. –
Ich würde gerne von jemandem korrigiert werden, aber ich bin mir ziemlich sicher, dass Sie eine Funktion schreiben müssen, um dies zu tun: Ich sehe keine eingebaute Funktionalität, die das erreicht, was Sie wollen. –