Stefan: Regex immer mal wieder

Beitrag lesen

Soweit klar? Das Muster sagt nichts in der Art "Finde '@', dann gehe zurück im Text und finde so wenig andere Zeichen zwischen '@' und '"' wie möglich", sondern einfach nur das, nichts anderes. Der Ausdruck startet am Anfang des Textes und sucht von dort aus so wenig Zeichen wie möglich, bis die restlichen Bedingungen erfüllt sind - falls sie erfüllt werden können.

Das ist für mich schon mal ein Quantensprung, denn bisher
dachte ich so wäre es:

Anfang: ergänze links <- suche ein Zeichen -> ergänze rechts :Ende

Gut erklärt, danke.

Nun verstehe ich also:

"["]./?[^"]"

-------------------------------------

Na mit diesem neuen Wissen auf zum Test:

"sonne.html""sonne2.html" "sonnehtmlx.jpg" "sonne3.html""katze/sonne4.html""sonnehtml.jpg"   "sonne2.csv" "sonne3.txt" "katze/sonne4.php"

Daraus möchte ich alles haben was innerhalb " und den
begriff "html" enthält.
Also:
!"[^"]*?html[^"]*?"!is      Richtig so ?

Ausgabe:
Array
(
    [0] => Array
        (
            [0] => "sonne.html"
            [1] => "sonne2.html"
            [2] => "sonnehtmlx.jpg"
            [3] => "sonne3.html"
            [4] => "katze/sonne4.html"
            [5] => "sonnehtml.jpg"
        )

)

-------------------------------------

Scheint zu klappen, dann trau ich mich doch glatt mal weiter.
Jetzt das gleich aber ich will alles zwischen " haben was nicht
den Begriff "html" enthält.

Also:
!"[^"]*?^html*[^"]*?"!is    Das klappt dann aber wieder nicht ;-(

Das ist immer so mit den Regex, kaum denkt man es geht voran
bekommt man prompt den Dämpfer und die selbstgedachte Logik
ist dahin.

PREG_MATCH_ALL() Es wurde keine Übereinstimmumg gefunden

Gruss
Stefan

ps. Deine Erklärung war sehr einleuchtend, zumindest begreife
ich jetzt wieder ein bisschen mehr.