Guten Morgen!
Ich möchte aus den Quellcode
<div class="main">Dieser Text soll ausgelesen werden</div>
den Text zwischen den div-Tags auslesen.
Ich dachte zunächst an
<div class="main">(.*)</div>
Der reguläre Ausdruck ist aber unvollständig/fehlerhaft, denn er würde beim Quellcode
<div class="main">Dieser Text soll ausgelesen werden</div>Dieser Text soll NICHT ausgelesen werden</div>
auch den Text nach dem ersten </div>-Tag berücksichtigen.
Ich suche nun nach der einfachsten Form eines reg. Ausdrucks, der alle Zeichen berücksichtigt (.*), außer das <-Zeichen.
<div class="main">(.*)</div>
1) Solltest du das / maskieren
2) Einfach die Suche lazy machen
<div class="main">(.*?)<\/div>
Sollte das gewünschte ergebniss bringen.
Siehe https://regex101.com/r/tTgTnK/1 (https://regex101.com/r/tTgTnK/1)
Wie ist das maskieren in diesem Fall zu verstehen?
Erwartet der Ausdruck durch das maskieren den Code
... werden<div>
bricht dann aber ab,
weil nach "werden" kein <div> kommt sondern </div>?
Schau dir den Link an, da steht ganz genau, was das macht:
Zitat\/ matches the character / literally (case sensitive)