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:
von

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 :D
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 &#40;strpos&#40;",," . $str . ",", ",1,"&#41; >= 1&#41; &#123;
  echo "gefunden";
&#125; else &#123;
  echo "keine 1";
&#125;
?>
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&#40;'/&#40;^|&#91;^0-9&#93;+&#41;1&#40;$|&#91;^0-9&#93;+&#41;/','1,21,11,4,5'&#41;;