Ik ben bezig met een zoekfuntie (PHP) die de gevonden woorden highlight.
Dit gaat uitstekend, echter zit er een schoonheidsfout in die ik met mijn kennis en zoekvaardigheden niet op kan lossen.
Ik heb het navolgende.
Met behulp van preg_replace_callback() vervang is nu $match[1] door een bold(HTML)-versie van $match[1].
Geen probleem, werkt uitstekend. Hij vervangt alle matches netjes zolang die niet binnen een HTML tag staan (dit wordt gecontrolleerd in de reguliere expressie).
Echter gaat het mis met de greediness.
Als ik een input als dit geef:
Dan ziet hij de string tussen de '|' als match. Logischerwijs.
Heeft iemand een idee hoe ik dat op kan vangen?
Dit gaat uitstekend, echter zit er een schoonheidsfout in die ik met mijn kennis en zoekvaardigheden niet op kan lossen.
Ik heb het navolgende.
code:
1
| /([>]{1}.*[\.]*[><]{0})(zoekwoord)(.*[\.]*[><]{0}[<]{1})/i |
Met behulp van preg_replace_callback() vervang is nu $match[1] door een bold(HTML)-versie van $match[1].
Geen probleem, werkt uitstekend. Hij vervangt alle matches netjes zolang die niet binnen een HTML tag staan (dit wordt gecontrolleerd in de reguliere expressie).
Echter gaat het mis met de greediness.
Als ik een input als dit geef:
code:
1
| <font|><b class="zoekwoord">zoekwoord<|/b></font> |
Dan ziet hij de string tussen de '|' als match. Logischerwijs.
Heeft iemand een idee hoe ik dat op kan vangen?