wieder ein preg_match_all Problem für Profis

weidacher

Grünschnabel
hab zum beispiel folgenden string:

#123#456#234#567

nun müsste ich die zahlen extrahieren

$ausgabe = preg_match_all("/#(.*)#/U", $text, $gefunden);
foreach ($gefunden[0] as $x)
{
echo $x; echo "<br>";
}

ergibt:
#123#
#234#

wie krig ich nun den zweiten wert also 456

DANKE
 
Tu mal so, als wärst Du ein Parser:
Du findest # -> passt
Du findest 3 beliebige Zeichen -> passt
Du bist nicht greedy und findest # -> passt.
Dein Ausdruck beginnt von vorne.
Du findest drei 3 beliebige Zeichen -> passt nicht
Du findest ein # -> passt
Du findest 3 beliebige Zeichen -> passt
usw.

Du willst doch Ziffern finden. Für Ziffern gibt es \d.
Versuch doch mal:
Code:
/#(\d*)/U
 
Warum denn gleich die große RegEx-Keule rausholen? Geht doch auch einfacher:

PHP:
<?
$text = '#123#456#234#567';

$zahlen = explode('#', $text);
array_shift($zahlen);

foreach ($zahlen as $x)
{
	echo $x.'<br>';
}
?>
 
Matthias Reitinger hat gesagt.:
Warum denn gleich die große RegEx-Keule rausholen? Geht doch auch einfacher:
Uuuups, da hab ich wohl den Wald vor lauter Bäumen nicht gesehen.
Und Du hast sogar daran gedacht, den ersten leeren Eintrag wegzunehmen.

@weidacher:
Mach es so, wie Matthias sagt, einfacher geht es kaum.

Gruß hpvw
 
Zurück