Preg_match für ein date
Ich bin versucht, ein Datum in PHP mit preg_match, teilen Sie Sie, und weisen Teile davon auf ein array, das Datum sieht aus wie "20100930", hier ist der code, den ich verwende:
//Make the tor_from date look nicer
$nice_from = $_POST['tor_from'];
$matches = array();
$ideal_from = '';
preg_match('/\d{4}\\d{2}\\d{2}\/', $nice_from, $matches, PREG_OFFSET_CAPTURE, 0);
//if (isset($matches[0])) $nice_from = $matches[0];
echo $matches[0];
echo "<br />";
echo $matches[1];
echo "<br />";
echo $matches[2];
echo "<br />";
echo $matches[3];
echo "<br />";
Ive gewesen mit:
http://php.net/manual/en/function.preg-match.php und PHP preg_match Frage zu formulieren Ideen, wie dies zu tun, aber ich hatte kein Glück in immer es, um zu arbeiten. Jegliche Hilfe würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Regex ist nicht der beste Weg, hier zu gehen, wenn das Muster so simpel. Verwenden
substr
statt:Obwohl regex ist nicht wirklich eine gute Lösung für die Analyse ein Datum im format YYYYMMDD, lassen Sie uns gehen Sie durch warum Ihre Muster nicht funktioniert.
Ihre Muster
\d{4}\\d{2}\\d{2}\
sagt: "Spiel 4-stellig (\d{4}
), gefolgt von einem umgekehrten Schrägstrich (\\
), gefolgt von die Buchstaben d zweimal (d{2}
), gefolgt von einem umgekehrten Schrägstrich (\\
) und dann schließlich noch zwei d' s (d{2}
)."Wie Sie vielleicht herausfinden kann, nun, wollen Sie nicht die doppelte Schrägstriche!
Wird Spiel 4 Ziffern, gefolgt von 2 Ziffern, und dann weitere 2 stellen.
Darüber hinaus sind Sie nicht Angabe Erfassung von Gruppen, so dass Ihre Subpattern wird nie gefüllt werden. Was Sie wahrscheinlich meinte, war:
In Aktion sehen bei http://www.ideone.com/iAy7K. Beachten Sie, dass es wirklich keinen Grund in deinem Fall die Angabe der
PREG_OFFSET_CAPTURE
Flagge (welche die position zurückgibt, an jedem Spiel) oder0
für den offset.Vergessen preg_match verwenden strtotime():
Ist es besser, wie das mit preg_match und indizierten Namen.
Und Spiele Aussehen wird:,
Cheers.
Müssen Sie einige Klammern um die Muster, die Sie möchten, zu zeigen, bis in
$matches
. Auch ich glaube nicht, dass Sie möchten, dass die Doppel -\\
zwischen Ihren\d
's da, dass die Flucht der zweiten\
und verlassen Sie das passende wörtliche'd'
.