Avatar billede hoppe11 Nybegynder
06. december 2007 - 23:11 Der er 5 kommentarer og
1 løsning

preg replace - tager kun mønstret en gang

preg_replace('/\[quote(?:=\d+)?\].*\[\/quote\]/si', '', 'fff fffff[quote=123]gggg gggg[/quote]dd dd fff fffff[quote=123]gggg gggg[/quote]dd dd');

jeg skal erstatte alle mine quote tags med ''

men den fjerner kun det første tag?
Avatar billede coderdk Praktikant
07. december 2007 - 10:53 #1
preg_replace('/\[quote(?:=\d+)?\].*?\[\/quote\]/si', '', 'fff fffff[quote=123]gggg gggg[/quote]dd dd fff fffff[quote=123]gggg gggg[/quote]dd dd');

PCRE er grådig som standard, så brug ? (i.e. .*?) eller angiv U for ungreedy i switches...
Avatar billede hoppe11 Nybegynder
07. december 2007 - 15:41 #2
smid et svar.. det hjalp

jeg har stadig ikke helt fattet brugen af ? som når det skal være greedy eller ungreedy :)
Avatar billede coderdk Praktikant
07. december 2007 - 15:45 #3
f.eks strengen abcabcabc
/a.*c/ matcher 1 gang abcabcabc (greedy)
/a.*?c/ matcher 3 gange abc (ungreedy) :)
Avatar billede hoppe11 Nybegynder
07. december 2007 - 18:16 #4
jeg har bare en ide om at det ? skal stå til sidst i sådan et tilfælde og ikke midt i
Avatar billede coderdk Praktikant
07. december 2007 - 18:29 #5
Mnææh, men ? har flere betydninger: /abc?d/ matcher abcd og abd, altså en form for "valgfri" - det virker også med grupper: /abc(def)?ghi/ matcher abcdefghi og abcghi...
Avatar billede hoppe11 Nybegynder
07. december 2007 - 19:21 #6
men jeg kan bare ikke forstå hvorfor man skal angive midt i en mønster at den kun skal matche mønstret en eller flere gange? :)
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