Stefan: Regex immer mal wieder

Beitrag lesen

Hello again ;-)

#  Ergebnis für $pattern = '!"[^"]+atz[^"]*?"!is';

Ja ich sagte ja schon, dass dein Ausdruck klappt.
Nur verstehe ich nicht warum nur so und nicht anders.

Probieren wirs mal anders:
(vielleicht frage ich ja auch zu kompliziert)

"hans1@web.de"
"hans2@web.de"
"hans3@web.de"
"hans4@web.de"

Das ist der Text , beachten dabei die Zeilenumbrüche.
Ich denke jetzt wenn ich jeweils von einem "bis zum nächsten
suchen möchte, wäre das so zu machen:
" = Damit fängt das an
" = damit hört es auf

Also !""! Jetzt steht aber noch nichts zwischen den beiden
". Also darum habe ich den Fall gewählt dazwischen ist ein
@.

Also !"@"!

Kann aber nicht gefunden werden, weil das ja so bedeutet
Klammeraffe muss direakt neben Anführungszeichen sein.
Unbekannte zeichen unbekannter länge davor und dahinter.

Also
!".*@.*"!is
Nö, zu gefrässig, aber das lässt sich ja ändern.

!".*?@.*?"!is

Ausgabe:
Array
(
    [0] => Array
        (
            [0] => "hans1@web.de"
            [1] => "hans2@web.de"
            [2] => "hans3@web.de"
            [3] => "hans4@web.de"
        )

)

---------------------------------------
Jetzt das Gemeine daran. Ich erhalte das Array wie ich es mir vorstelle und denke dann stimmt meine Theorie beim zusammenbasteln.

Aber das tut sie natürlich nicht.

Du benutzt da einen anderen Weg, der aus irgendeinem Grund
hinter dem 1. " ein 2." ausschliesst und damit klappts
aber ich weiss nicht warum, denn

Ich will doch suchen zwischen 2 " also

!"erstmal egal was hier steht"!

Vielleicht verstehe ich es wenn du deinen Ausdruck so umstellen
kannst dass es auch geht wenn du nicht das [^"] drin hast.
denninnherhalb der Emailadressen taucht das ja auch nicht auf erst
am Ende wo es ja auch sein soll.

--------------------------------------
Langsam wirds für dich bestimmt frustrierend, aber genau
solche Sachen fehlen in den ganzen Dokus.

Gruss
Stefan