Magnus Holm Skrevet 17. november 2005 Del Skrevet 17. november 2005 (endret) Hei! Jeg trenger hjelp med preg_replace. Jeg ønsker at aller "a"'er skal byttes ut med "b"'er så lenge de ikke står i mellom "<" og ">". Går dette ann med en enkel regex, eller må man gå grundere til verks? Takk! EDIT: Leif Endret 17. november 2005 av Judofyr Lenke til kommentar
???????? Skrevet 17. november 2005 Del Skrevet 17. november 2005 Hallo Judofyr, jeg skal gi deg et lite triks når du sliter litt med en slik regex. I steden for å sitte lenge å finne en optimal kombinasjon, ta en kikk på funksjonen preg_replace_callback(). Ved å bruke den funksjonen kan du enkelt hente ut alt mellom < og > og sende det til en callback funksjon som der bytter ut a med b. F.eks.: $string = "abcd <abacada> abcd <abacada>"; function bytt_a_med_b($str) { return preg_replace("/a/", "b", "<{$str[1]}>"); } echo htmlentities(preg_replace_callback("/\<(.*?)\>/", bytt_a_med_b, $string)); // output: abcd <bbbcbdb> abcd <bbbcbdb> Glem ikke at et for avansert regex ikke nødvendigvis blir mindre krevende enn å kjøre en liten callback Lenke til kommentar
Magnus Holm Skrevet 18. november 2005 Forfatter Del Skrevet 18. november 2005 (endret) Men jeg skal bytte ut alle som ikke står mellom < og >... Hvordan blir det da? EDIT: Fant det ut Endret 18. november 2005 av Judofyr Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå