Vinzenz Mai: String: Teilstring bis zum ersten NICHT numerischen Zeichen

Beitrag lesen

Hallo,

Hintergrund: Ich habe eine Variable &parameters, in der sowas steht:
cPath=55_3&nochwas=76&nochwas1=444...
oder
cPath=2&nochwas=76&nochwas1=444...

Ich brauche immer den Inhalt von cPath und hiervon nur den ersten Teil.
Also beim ersten Beispiel die 55
beim zweiten die 2

kann mir jemand einen Tip geben, wie ich am besten vorgehe??

Korrektur:

Du suchst also in einem Variableninhalt nach folgendem Muster
  - die Zeichenfolge cPath=
  - gefolgt von einer beliebigen Anzahl von Ziffern,
    die Du Dir merken möchtest
  - was weiter folgt, interessiert Dich nicht, denn reguläre Ausdrücke
    sind standardmäßig gierig und finden möglichst viel.

Umgesetzt in PHP:

<?php  
    $matches  = array();                    // Array für die Treffer  
    $haystack = '&foo=16&cPath=17_4&bar';   // Zeichenkette, in der wir suchen  
    $pattern  = '~cPath=([0-9]+)~';         // Muster für die Suche  
	/*  
           Erläuterung:  
           ~            verwende ich hier als [link:http://de3.php.net/manual/de/regexp.reference.delimiters.php@title=Delimiterzeichen]  
           cPath=       Auftreten der Zeichenfolge cPath=,  
           ([0-9]+)     gefolgt von einem oder mehreren Ziffern,  
                        die Klammern sorgen für ein [link:http://de3.php.net/manual/de/regexp.reference.subpatterns.php@title=Teilmuster],  
                        dessen Treffer gemerkt werden.  
           ~            Musterende  
           Anmerkung:   falls keine Ziffer folgt, beispielsweise  
                        bei cPath=baz, dann gibt es keinen Treffer  
                        Ist dann die leere Zeichenkette gewünscht,  
                        verwende den [link:http://de3.php.net/manual/de/regexp.reference.repetition.php@title=Quantifier] * statt +  
  
           Hinweis:     preg_match stoppt nach dem ersten Treffer.  
	*/  
    $match    = [link:http://de3.php.net/manual/de/function.preg-match.php@title=preg_match]($pattern, $haystack, $matches);  
  
	// Es folgt eine Debug-Ausgabe:  
    if ($match > 0) {  
        echo "<pre>\n";  
        print_r($treffer);  
        echo "</pre>\n";  
    }  
	/* gibt folgendes aus:  
	Array  
    (  
        [0] => cPath=17_4&bar  
        [1] => 17  
    )  
	*/  
?>  
  

Freundliche Grüße

Vinzenz