Reg Exp: .* uitgezonderd "

Pagina: 1
Acties:
  • 25 views sinds 30-01-2008

  • Zynth
  • Registratie: September 2001
  • Laatst online: 07-05 18:31
Ik zit met een probleem met reguliere expressies.
Ik heb al flink zitten googlen en gatheringen, maar kom er toch niet uit.

Wat ik wil is het vervangen van:
href="*php*"
door iets anders, maar dat kan ik zelf denk ik wel ;)
het probleem zit hem in het feit dat hij dus niet in:
href="groente"><a href="blaat.php">
het gedeelte van groente t/m blaat moet vinden, maar alleen blaat.php
De oplossing is dat gedoe met minimal non-greedy matchings ben ik al achter,
maar dat krijg ik nog niet helemaal voor elkaar.
ik heb nu (php):
preg_replace("/href=\"(.*?)php\"",...:
maar garandeerd dat wel dat genoeg?
Dat hij geen andere links kan aanpassen?
Want als ik dom zou denken zou ik zeggen dat een oplossing zou zijn:
preg_replace("/href=\"(.*?METUITZONDERINGVANEENQUOTE)php\"",....)
Die zou namelijk gegarandeerd goed gaan.
Maar hoe kan ik dat nou eigenlijk het beste doen?
of moet ik het heel anders aanpakken

Verwijderd

PHP:
1
/\bhref="\*php\*"\b/


De wordboundary zorgt ervoor dat alleen exact de bovenstaande tekenvolgordes worden vervangen. Beter zou ik het vinden om alternatieve tags (UBB-code) te gebruiken in je templatesysteem.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-05 22:46

Janoz

Moderator Devschuur®

!litemod

Als je in plaats van de punt (wat alles betekend) eens een stukje opneemt van alles behalve " ben je klaar. Dit is zo ongeveer standaard in elke willekeurige regexp handleiding wel te vinden dus kan ik me niet aan de indruk onttrekken dat je daar nog helemaal niet gekeken hebt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Dit topic is gesloten.