Magnus Holm Skrevet 17. november 2005 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
???????? Skrevet 17. november 2005 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
Magnus Holm Skrevet 18. november 2005 Forfatter 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
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å