#!/usr/bin/python import re # Modul fuer regulaere Ausdruecke shurl = "z1z" # Praefix fuer Short-URLs shurlno = 0 # Zaehler fuer die gefundenen URLs # Zu bearbeitender Text text = """ Das ist ein Beispieltext, der mehrere Quellen [1] referenziert, die in einem Literaturverzeichnis auftauchen. Manche der verwendeten Quellen enthalten URLs zu Webseiten, die mit ... formatiert sind. Das Literaturverzeichnis wird durch ein "@"-Zeichen und "IT:Infos" eingeleitet; einzelne Quellen sind mit "@IL:" gekennzeichnet. @IT:Infos @IL:[1] Wikipedia zu Quellenangabe: https://de.wikipedia.org/wiki/Quellenangabe @IL:[2] Link zur Hochschule: http://www.fh-swf.de/ @IL:[3] Quelle ohne Link: Hans-Georg Esser, "Skriptsprachen - Uebungsblatt 2", 2018 @IL:[4] Link zu Python: https://www.python.org/ """ lines = text.split("\n") nlines = len(lines) # suche Zeile mit "@IT:Infos" for i in range(nlines): if lines[i] == "@IT:Infos": startline = i for i in range(startline,nlines): l = lines[i] pat = "([^<]*)" if re.search (pat, l): treffer = re.findall (pat, l) if len(treffer) > 1: print ("Warnung: Mehr als eine URL in Zeile " + str(i+1)) u2 = treffer[0] # URL steht in treffer[0] shurlno += 1 u1 = "http://fh-swf.de/"+shurl+str(shurlno) sh = "("+u1+")" lines[i] = re.sub (pat, "\\1 "+sh, l) print (shurl+str(shurlno)+'\t'+u2) print ("\n--------------") print ("\n".join(lines))