Hallo,
gegeben sei folgender Test-String:
Code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
irgendwas
noch mehr irgendwas
hier können beliebig viele Zeilen sein
Zahl 1 ist "2"
ganz viel irgendwas
hier können beliebig viele Zeilen sein
Zahl 2 ist "unbekannt" und die Zeile hat n Leerzeichen am Anfang |
|
Als Ausgabe möchte ich "2" und "unbekannt" haben.
Folgender Regex tut leider nicht was er soll:
Code: |
1:
|
^\s*Zahl 1 ist "(.+?)"$(?:^.*$)+?^\s*Zahl 2 ist "(.+?)" |
|
Getestet mit
regex101
Zahl 1 findet er, wenn ich den Part von Zahl 2 wegnehme.
Ich möchte
nicht den Singleline mode nehmen, da sich das offenbar schlecht auf die Performance auswirkt...ist ein recht langer Quellcode einer Webseite.
Problem scheint das hier zu sein: (?:^.*$)+?
Damit möchte ich 1-n Zeilen beschreiben, in denen alles mögliche oder auch gar nichts steht. Jetzt wo ich es laut lese, wird das wohl Performance-Technisch auch nocht so toll sein und aufs gleiche raus kommen wie singleline. Kann mir hier jemand helfen? Am liebsten würde ich einfach die Zeilen-Anker ^ und $ Quantifizieren, aber das geht wohl nicht.