dedlfix: Regex und strpos

Beitrag lesen

Tach!

Ok, guter Vorschlag. Aber was mir fehlt, ist der reguläre Ausdruck

  • $config muß am Anfang des Strings vorkommen

Das $ ist ein Sonderzeichen, also muss es literal verwendet mit einem \ maskiert werden.

  • Dann muß es mit einer eckigen öffnenenden Klammer weitergehen

Auch diese ist ein Sonderzeichen, muss also wieder maskiert werden.

  • gefolgt von einem Hochkomma

Hier musst du nur PHPs Stringverarbeitung beachten. Entweder du schließt das Suchmuster in "" ein oder du musst für PHP das ' mit \ maskieren.

  • gefolgt von beliebig vielen Groß-/Kleinbuchstaben und/oder Ziffern sowie Unterstrich

Eine Zeichenklasse: [a-zA-Z0-9_], davon ein oder mehrere: +

  • gefolgt von einem Hochkomme

Siehe oben.

  • gefolgt von einer schließenden eckigen Klammer am Stringende

Die schließende Klammer ] ist nur dann ein Sonderzeichen, wenn eine eckige offen ist. Ist aber keine, weil die erste literal verwendet wurde und die Zeichenklasse bereits geschlossen ist.

Und hiervon brauchen würde ich dann den "Inhalt: 'beliebig vielen Groß-/Kleinbuchstaben und/oder Ziffern sowie Unterstrich'"

Dann muss die Zeichenklasse nebst dem Multiplikator + in () gesetzt werden.

Den Inhalt findest du dann in $match[1], wenn du dem preg_match() als drittem Parameter ein $match mitgibst.

Und außerdem brauchst du auch noch Delimiter um das gesamte Muster.

Wenn du gut aufgepasst hat, müsste dir auffallen, dass der \ mal ein RegExp-Zeichen maskiert und mal ein PHP-Zeichen. Das kann missverständlich sein, wer nun was verbraucht/benötigt. Zuerst kommt der PHP-Parser und parst alle \ weg, für die ein nachfolgendes Zeichen defniert ist. In ''-Strings ist das nur das ' und der . Alle anderen Sequenzen, wie $ werden literal interpretiert, also durchgereicht. Somit bekommt die RegExp-Maschine in den obigen Fällen alles außer dem ' zu sehen, davon sieht es nur den ' - also alles bestens.

dedlfix.