[PHP] Regex probleem

Pagina: 1
Acties:

  • Zeezicht
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:59
In een variabele moeten ik bepaalde woorden vervangen door dezelfde maar dan met <b> ervoor en </b> erna. Dit lukt wel met de regex functies van PHP.
Maar ik moet voorkomen dat als zo'n woord gebruikt wordt in een link (dus het woord tweakers in www.tweakers.net) dat er geen <b> en </b> omheen komt, want dan werkt de link natuurlijk niet meer |:(

Hoe kan ik dat voorkomen? Ik kom er niet uit met de PHP site en verschillende tutorials.

  • jeroen|IA
  • Registratie: Juni 1999
  • Laatst online: 26-05-2025
Als dat woord normaal gesproken "los" op de regel staat (en in een urrel dus niet) is het heel simpel:

s/ \(woord\) /<b>\1</b>/g

Kan trouwens zijn dat die \1 $1 moet worden in PHP.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 15 september 2001 00:31 schreef jeroen het volgende:
Kan trouwens zijn dat die \1 $1 moet worden in PHP.
\1 werkt zowiezo, $1 is vanaf php4.0.5 bijgevoegd

  • Zeezicht
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:59
Maar dat betekent dus dat er een spatie voor en na moet zijn?
Het kan ook voorkomen dat het tussen haakjes staat of er een punt achterstaat. En bij een URL kan er ook een punt achterstaan, dus dat is weer een lastig geval.

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Ik weet niet van php maar in perl kun je het aangeven door er \b omheen te zetten, dus
code:
1
/\b$match\b/ig

zorgt ervoor dat het alleen een loststaand woord matcht, en dat werkt volgens mij ook als het tussen haakjes staat en sowieso aan het eind van een zin. Lijkt me dat dit voor php ook werkt. (meer info: hiero.