Seite 1 von 1
regexp frage
Verfasst: 04.03.2009, 21:45
von designerno1
Hallo ich habe mal ne frae zu regexp hoffe hier ein paar gute leute zu finden die mir vielleicht diese frage beantworten können
ich habe einen string "1,21,11,4,5"
und möchte nun in diesem string alle vorkommen von 1 haben aber eben nur 1 und nicht 11 oder 21
läst sich das mit regexp realisieren oder habe ich da einen denkfehler?
vielen dank für eure antworten
Verfasst: 05.03.2009, 00:25
von pagan
Ich kann aus deinem Text nicht rauslesen worauf du eigentlich hinaus willst.
So wie ich es verstehe willst du aus "1,21,11,4,5",
"1" machen?
Da ich vermute das dein String auch mehrere 1 enthalten kann und unterschiedlich lang sein kann, würde ich ihn mit explode
https://de.php.net/manual/de/function.explode.php aufteilen.
Und dann je nachdem was du nun als Ergebnis willst evtl. mit array_count_values oder in_array prüfen.
Verfasst: 05.03.2009, 00:33
von SeriousBadMan
array_count_values
lol heißt das so in php? wie intuitiv

und ich dachte man muss da den array durchlaufen und eine variable immer erhöhen, wenn man eins weiter geht... da hab ich wohl die falsche sprache gelernt.
Verfasst: 05.03.2009, 02:58
von t-rex
Hi,
LOL array_count_values kannte ich bisher auch noch nicht. Danke!
Zur Frage:
Wenn Du die Anzahl der EINDEUTIGEN Einsen haben musst, dann ist das Konstrukt mit explode und array_count_values wohl ein guter Weg.
Wenn Du dagegen nur abfragen musst, ob mindestens eine 1 dabei ist, würde ich vielleicht sowas nehmen ....
Code: Alles auswählen
<?
$str = "1,21,11,4,5";
if (strpos(",," . $str . ",", ",1,") >= 1) {
echo "gefunden";
} else {
echo "keine 1";
}
?>
Sonnige Grüsse
HaPe
Verfasst: 05.03.2009, 17:08
von henß
Das ganze als schöne RegEx-Variante:
Code: Alles auswählen
preg_match_all('/(^|[^0-9]+)1($|[^0-9]+)/','1,21,11,4,5');