Hi Eric,
Ich möchte einen beliebigen String in zwei Teile aufsplitten. Der String ist dabei grundsätzlich gleich aufgebaut: zuerst Buchstaben, danach Zahlen, z.B.
dhgz15
dq122
prs77Nun möchte ich letztendlich 2 Strings haben: den Buchstaben-Teil und den Ziffern-Teil.
Um wirklich alle Buchstaben abzudecken, würde ich folgendes vorschlagen:
$vorher = 'blubbä123';
if( !preg_match('/\A([[:alpha:]]+)(\d+)\Z/', $vorher, $nachher) ) {
print('String entsprach nicht den Vorgaben!');
exit();
}
$buchstaben = $nachher[1];
$zahlen = $nachher[2];
// zur Anschauung
print_r($nachher);
Das Array $nachher beinhaltet dann die Teilstrings in den zur Nummer der Klammer passenden Keys. Und $nachher[0] enthält den gesamten gefundenen String.
Die "regular expression" aufgedröselt:
[:alpha:] Zeichenklasse für alle Buchstaben (nicht nur a-z und A-Z);
[[:alpha:]] Zeichen aus obiger Zeichenklasse mindestens einmal;
\d+ Zahl ("\d") mindestens einmal ("+");
\A String-Anfang;
\Z String-Ende;
Irgendwo auf pcre.org steht das auch ausführlichst erläutert.
MffG
EisFuX