regex assertion

Tags:    php

Hejsa

Hvordan siger man at hvis der er et punktum til sidst i et match så skal man ikke tage det med?

Eller mere konkret:
Jeg fandt dette på en hjemmeside:
Fold kodeboks ind/udKode 


Som jeg fik flettet ind i det jeg havde på denne måde:
Fold kodeboks ind/udKode 


Men!, den tager punktum med hvis jeg skriver www.eksempel.dk/?side=5. (men ikke uden /?side=5)

Derfor forsøgte jeg mig med at skrive (?=\.) forskellige steder i håb om at den ville lade være med det.
Men det gav en masse rod fordi det vist betyder at det SKAL matche en streng der er efterfulgt af et punktum (i mit tilfælde hvis der er andet end www domæne og hoveddomæneellerhvaddethedder)

Mange tak på forhånd! :)
Og spørgsmålet var hvordan man ændrer (?=\.) til at fjerne et punktum fra resultatet hvis der ER et punktum.



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Så som...?



Prøv at smide følgende i enden:
[^\.]




Det er hermed prøvet.
Jeg får nogle mærkelige resultater.



Fuld kode tak :)



Ja først prøvede jeg:
Fold kodeboks ind/udKode 


Og det virkede jo ikke. Men så tror jeg at jeg prøvede:
Fold kodeboks ind/udKode 


Og ja.. det virker vist! Men så alligevel ikke når jeg bruger det med sidste mønster.

Her er mit output:
www.test.dk/index.php?page=5&cmd=viewtest. blabla = www.test.dk/index.php?page=5&cmd=viewtest.

Og der har vi et punktum. Hvis der kommer noget mere tekst bagefter altså.

(RETTELSE: har også prøvet at indsætte det helt til sidst før € og med parentes udenom på forskellige måder)

(RETTELSE2: noget der ligner fuld kode ;)

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 02.02.2009 23:22 af Bruger #10608
Jeg vælger at bruge et andet mønster.
Fold kodeboks ind/udKode 




t