EisFuX: String aufteilen

Beitrag lesen

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
prs77

Nun 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

--
... Suchmaschinen-Blog ...