Gå til innhold

Bytte ut siste pattern


Anbefalte innlegg

Skrevet

Bruker preg_replace og vil at den skal bytte ut det siste den finner men ikke noe før.. Altså:

$var = "
test <-- Ikke denne
test <-- Ikke denne
test <-- Men denne
";

$var = preg_replace("test","replacement",$var);

Er det mulig? Isåfall hvordan...?

Videoannonse
Annonse
Skrevet

Er ikke helt sikker på hva du mener?

Mener du siste ordet, siste linjen eller siste "test".

 

Hvis du mener test så kan du bruke:

echo eregi_replace("test$", "", $var);

Skrevet

Den funket forresten ikke slik jeg ville..

hvis f.eks dette skjer når jeg bruker $:

test
test
test
noe annet

 

Så blir ikke den siste test funnet.. Hvordan kan jeg få til det?

Skrevet (endret)

Denne skulle funke.

print preg_replace("/test(?!.*?test)/s","kake",$text);

Blir til:

test
test
kake
noe annet

Denne blir fort ueffektiv hvis tekststørrelsen blir stor. Da er det bedre å bruke strrev() strpos() og substr() funksjonene.

 

Edit: Tok en liten test, og den regexen klarer fint tekster opp i et par megabytes. Min gamle bærbare brukte et par sekunder på en tekst på ca. 1 Mb.

Endret av stiber

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...