Avatar billede pissed_squirrel Nybegynder
01. januar 2011 - 21:28 Der er 3 kommentarer og
1 løsning

preg_replace med talstreng?

Hej Eksperter

Jeg har en teksstreng hvor der kan forekomme tal i. Jeg kan via preg_replace erstatte tallet med x'er

<?php

$string = "The number 123456789 is positive and -9876543210 is negative";

echo preg_replace("/\d/", "#", $string);

?>


Resultatet bliver så
The number ######### is positive and -########## is negative


Nu kunne jeg dog godt tænke mig at der kun blev indsat et # pr. talstreng, dvs. alle de steder hvor der står et sammenhængende antal tal skal der kun indsættes 1 #.

Ønsket resultat
The number # is positive and -# is negative


Dvs. hvis sætningen ser således ud
32 er mindre end 45 som er større end 2

skulle resultatet gerne se således ud
# er mindre end # som er større end #


Nogle der kan hjælpe mig til hvordan jeg lige skal løse den nød og om jeg overhovedet er startet rigtigt ud med preg_replace

Tak på forhånd :)
Avatar billede erikjacobsen Ekspert
01. januar 2011 - 21:54 #1
echo preg_replace("/\d+/", "#", $string);
Avatar billede pissed_squirrel Nybegynder
02. januar 2011 - 11:30 #2
Det var godt nok tæt på kan jeg se.

Er der så en mulighed for at jeg kan få smidt talstrengene i en variabel, sådan at jeg kan gemme dem til senere brug, eller er preg_replace så ikke en god løsning?
Avatar billede erikjacobsen Ekspert
02. januar 2011 - 12:54 #3
Hvis du inden erstatning med # bruger http://dk.php.net/preg_match kan du få samlet tallene op.
Avatar billede pissed_squirrel Nybegynder
02. januar 2011 - 15:18 #4
Jeg brugte denne løsning
preg_match_all("/\d+/", $string, $all_matches);

$matches = $all_matches[0];

for($i=0;$i<count($matches);$i++)
{
    echo $matches[$i]."<br />";
}

efter at have kigget på preg_match som erikjacobsen foreslog

Mange tak for hjælpen Erik

Kan du ikke smide et svar, jeg ved godt at du ikke vil have point, men jeg kan vel bare sætte dig til 0, så du stadig står som at komme med det rigtige svar?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester