Wie man mit re () in Python richtig iteriert
Ich möchte ein Python-Skript erstellen, das Fußnoten erstellt. Die Idee ist, alle Saiten dieser Art zu finden"Some body text.{^}{Some footnote text.}"
und ersetzen Sie sie durch"Some body text.^#"
, woher"^#"
ist die richtige Fußnotennummer. (Ein anderer Teil meines Skripts befasst sich mit dem tatsächlichen Ausdrucken der Fußnoten am Ende der Datei.) Der aktuelle Code, den ich dafür verwende, ist:
pattern = r"\{\^\}\{(.*?)\}"
i = 0
def create_footnote_numbers(match):
global i
i += 1
return "<sup>"+str(i)+"</sup>"
new_body_text = re.sub(pattern, create_footnote_numbers, text)
Dies funktioniert gut, aber es scheint seltsam, eine Variable deklarieren zu müssen (i
) außerhalb voncreate_footnote_numbers
Funktion und müssen es dann innerhalb dieser Funktion aufrufen. Ich hätte gedacht, dass da etwas drin sein würdere
das würde die Nummer der Übereinstimmung zurückgeben.