Gå til innhold

Erstatting av ord i tekststreng


Anbefalte innlegg

Hei.

 

Jeg trenger en funksjon som erstatter et ord i en tekststreng. Har tidligere brukt str_replace(), men det er ikke et godt alternativ da et ord kan være lokalisert følgende måter:

 

ingen tegn foran seg, og mellomrom etter seg

ingen tegn foran seg, og linjeskift etter seg

mellomrom foran seg, og mellomrom etter seg

mellomrom foran seg, og linjeskift etter seg

 

dessuten kommer spesialtegn som . , : ; (er sikkert noen jeg har glemt)

 

 

Tenkte på regex, men jeg har lite peiling på det, så lurte på om noen her vet om en bedre/lettere løsning i php.

 

Takker på forhånd for eventuelle svar :)

Lenke til kommentar
Videoannonse
Annonse
EDIT:

Torbjorn hjalp meg med en preg løsning som passet perfekt

$search = array("/\bhei\b/","/\bHei\b/");

$replace = array("morn","Morn");

preg_replace($search,$replace,$string);

© Torbjørn. Bare tenkte det var greit å vise hvordan det faktisk ble gjort i dette tilfellet.

Lenke til kommentar
  • 3 måneder senere...

er det mulig å modifisere den der slik at den tolker enkelte spesialtegn som en del av ordet? f.eks. at den ikke skal utelate # i #ord da den der blir kjørt.

 

går det ann å gjøre den case insensitive også? med det mener jeg at jeg vil kunne erstatte f.eks.

 

"#hei #HALLO" med "1hei 1HALLO" eller liknende?

Lenke til kommentar

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...