Avatar billede mixhael Nybegynder
12. august 2006 - 02:36 Der er 2 kommentarer

Regulært udtryk

Jeg skal lave et lille regulært udtryk som kan convertere:

"Test 1" hej "med dig"

Til:

Test+1 hej med+dig

Det er nok smartes at benytte sig af http://dk.php.net/manual/en/function.ereg-replace.php..

Så lang kan jeg komme.. men det regulære udtryk er lidt for kompliceret til at jeg kan overkomme det.. Er der nogle der lige kan strikke sådan en fætter sammen?

På forhånd tak.

Mv Michael
Avatar billede erikjacobsen Ekspert
12. august 2006 - 08:44 #1
Du skal lige teste det grundigt

  $s='"hej med" dig "du er 1 sjov fyr"';
  print preg_replace('/"(.*?)"/e','preg_replace("/\s/","+","\1")',$s);
Avatar billede gizmo-gizmo Nybegynder
12. august 2006 - 13:46 #2
Pas på med at bruge /e, da der er fare for regex-injections (svarer lidt til at bruge eval()). Så hvis din streng kommer fra et brugerinput vil jeg nok gøre det på denne måde i stedet:

echo preg_replace_callback('/"(.*?)"/', create_function('$r','return str_replace(" ", "+", $r[0]);'), $s);
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