[php] reguliere exp : een text vervangen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hallo dan
ik heb een tekst een lange tekst en ik wil vanaf het begin van de file tot een bepaald woord alles weghalen. Handig leek mij om dan gewoon preg_replace uit te voeren en dan de tekst tot het bepaalde sleutelwoord te vervangen door niks.
hoe zou ik dit moeten aanpakken , want ik weet niet hoe de te vervangen tekst er uit ziet, hoe gtoot het is etc ..
hetzelfde geldt ook voor het vervangen vanaf een sleutelwoord tot en met het einde van eht bestand.

dus :
tekst tekst tekst tekst tekst tekst tekst tekst tekst SLEUTEL1 tekst tekst tekst tekst SLEUTEL2 tekst tekst tekst tekst

zou moeten worden:
SLEUTEL1 tekst tekst tekst tekst SLEUTEL2

alvast bedankt

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Met str_pos de positie bepalen en dan substring gebruiken. Of anders exploden op de sleutel en dan kijken bij welke key de sleutel zit. Die key+1 zijn de gegevens die je wilt hebben.

Acties:
  • 0 Henk 'm!

Verwijderd

replace ".*SLEUTEL1" met SLEUTEL1
replace "SLEUTEL2.*" met SLEUTEL2

waarbij .* betekent: nul of meer willekeurige characters

hoe dat psies moet in PHP moet je zelf maar even uitzoeken

[ Voor 13% gewijzigd door Verwijderd op 18-01-2004 17:59 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
PHP:
1
preg_replace('/^(.*)(SLEUTEL1)(.*)(SLEUTEL2)(.*)$/', '\2\3\4', $input);

Dat niks voor je?

Acties:
  • 0 Henk 'm!

  • Myrdhin
  • Registratie: April 2000
  • Laatst online: 19-09 23:15
ACM schreef op 18 januari 2004 @ 18:26:
PHP:
1
preg_replace('/^(.*)(SLEUTEL1)(.*)(SLEUTEL2)(.*)$/', '\2\3\4', $input);

Dat niks voor je?
PHP:
1
preg_replace('/^.*(SLEUTEL1.*SLEUTEL2).*$/', '\1', $input);

Zou toch ook moeten werken?

[ Voor 10% gewijzigd door Myrdhin op 18-01-2004 19:24 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:52

crisp

Devver

Pixelated

let op de greedyness:

PHP:
1
$input = preg_replace('/^.*?(SLEUTEL1.*?SLEUTEL2).*$/', '$1', $input);

Intentionally left blank

Pagina: 1