dwex
Erfahrenes Mitglied
Hallo Leute,
ich scheitere schon wieder an wahrscheinlich einfachen Regex.
Ich habe folgenden Code:
Damit suche in in einer Tabelle nach einem bestimmten Datum um einen Wert für dieses Datum auszulesen.
Gleich vorweg - das Script funktioniert - habe es gefunden.
Nur ich möchte es auch verstehen - und das tue ich nicht.
Es geht mir im speziellen um den Ausdruck ([^<]+).
Bitte berichtigt mich wenn ich falsch liege von dem was ich schon verstanden habe:
Was die runden Klammern angeht das verstehe ich noch (also was in runden Klammern steht wird separat behandelt und steht im Ergebnis-Array als einzelner Wert.
Das mit den eckigen Klammern verstehe ich, glaube ich, auch - es handelt sich um einenen benutzerdefinierten Suchstring.
Was ich nicht verstehe sind die Zeichen ^ und <.
Das ^ kennzeichnet doch so wie ich es verstanden habe den anfang einer Zeichenkette mit dem + mache ich diese beliebig lang.
Jetzt zum < das ist wohl die beginnende Klammer des Tags </td> - aber warum wird diese in $match[1] nicht mit ausgegeben sondern nur das was davor steht?
Vollkommen verwirrt mich aber, dass nachfolgender Code das gleiche Ergebnis liefert:
Ich hoffe Ihr versteht was ich meine.
ich scheitere schon wieder an wahrscheinlich einfachen Regex.
Ich habe folgenden Code:
PHP:
$grabday = '15.04.2011';
preg_match("/$grabday<\/td><td>([^<])/",$daten,$match);
Gleich vorweg - das Script funktioniert - habe es gefunden.
Nur ich möchte es auch verstehen - und das tue ich nicht.
Es geht mir im speziellen um den Ausdruck ([^<]+).
Bitte berichtigt mich wenn ich falsch liege von dem was ich schon verstanden habe:
Was die runden Klammern angeht das verstehe ich noch (also was in runden Klammern steht wird separat behandelt und steht im Ergebnis-Array als einzelner Wert.
Das mit den eckigen Klammern verstehe ich, glaube ich, auch - es handelt sich um einenen benutzerdefinierten Suchstring.
Was ich nicht verstehe sind die Zeichen ^ und <.
Das ^ kennzeichnet doch so wie ich es verstanden habe den anfang einer Zeichenkette mit dem + mache ich diese beliebig lang.
Jetzt zum < das ist wohl die beginnende Klammer des Tags </td> - aber warum wird diese in $match[1] nicht mit ausgegeben sondern nur das was davor steht?
Vollkommen verwirrt mich aber, dass nachfolgender Code das gleiche Ergebnis liefert:
PHP:
preg_match("/$grabday<\/td><td>([^<\/td>]+)/",$daten,$match);
Ich hoffe Ihr versteht was ich meine.
Zuletzt bearbeitet: