Avatar billede meek Nybegynder
03. januar 2005 - 14:27 Der er 4 kommentarer og
1 løsning

RegExp problem

Hej Eksperten,

følgende regExp:

$uri = eregi_replace("[^\]\|", "/", $uri);

Erstatter alle instanser af | som ikke har en \ foran sig med /

eks. "Hej med \| dig. jeg hedder | kaj."
bliver til "Hej med \| dig. jeg hedder/ kaj."

Problemet er bare som man kan se af eksemplet at regexp "æder" det mellemrum der er imellem "hedder" og "|". Det gør den pga. regexp. indeholder tegnet før |, også selvom det er et mellemrum.

hvem kan hurtigt lave regexp. om så det virker.
Jeg vil have erstattet | uden \ foran, men uden at den skal æde tegnet foran.

sådan her:
"Hej med \| dig. jeg hedder | kaj."
bliver til "Hej med \| dig. jeg hedder / kaj."

mvh.
Meek
Avatar billede meek Nybegynder
03. januar 2005 - 14:30 #1
det skal selvfølgelig også virke selvom tegnet før ikke er et mellemrum, eg:

forkert:
før: "Bliv| anmeldt / med jord | pipe? og slash/"
efter: "Bliv| anmeldt / med jord | pipe? og slas/"

rigtigt:
før: "Bliv| anmeldt / med jord | pipe? og slash/"
efter: "Bliv| anmeldt / med jord | pipe? og slash/"

obs! læg mærke til "h"'et i slash.. er fjernet i den forkerte.
Avatar billede gammelhat Nybegynder
03. januar 2005 - 14:52 #2
En løsning kunne være, at fange tegnet foran, og indsætte det i din replace-streng..

$uri = eregi_replace("([^\])\|", "\\1/", $uri);
Avatar billede meek Nybegynder
03. januar 2005 - 14:53 #3
det virker. takker!
Avatar billede meek Nybegynder
03. januar 2005 - 14:54 #4
svar lige...
Avatar billede meek Nybegynder
17. august 2005 - 11:49 #5
afsluttet.
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