Avatar billede jensgram Nybegynder
10. november 2004 - 20:21 Der er 1 kommentar og
1 løsning

IKKE en streng

Hejsa

Sidder med følgende:

.*?[^<\/>]

og håbede, at [^<\/>] ville udelukke strengen "<\/>", men den udelukker alle tegnene; "<", "\", "/" og ">" kan jeg læse mig til.

Spørgsmålet er nu: Hvordan kan jeg udelukke mere end en karakter?

Forsøgte mig med paranteser:

hej[^(sa)]

og håbede så på: match hej, hejgnu, hejas, men ikke hejsa

Sådan går det desværre ikke med preg_replace() i PHP

Hvad gør jeg?


PS: Hele sætningen er som følger:

/('|&quot;)(.*?[^<\/>])?\\1/ - og den virker fint til formålet på nær i netop det tilfælde, hvor det sidste tegn før \\1 er <, \, / eller > - det skulle have været, hvis de sidste tegn var '<\/>'
Avatar billede jensgram Nybegynder
10. november 2004 - 20:44 #1
dOOh - klarer den da bare med /('|&quot;)(.*?[^<][^\/][^>])?\\1/
Avatar billede jensgram Nybegynder
10. november 2004 - 21:08 #2
Endte med: /('|&quot;)(|[^\\1]{1,2}|.*?[^<][^\/][^>])\\1/
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
Kurser inden for grundlæggende programmering

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