Hai groep,
Al avonden ben ik aan het stoeien met het volgende. Veel reg expr. tutorials gelezen en gezocht, maar ik kom net niet uit het laatste stukje.
Ik wil in een string (vaak een lap tekst met HTML-tags) alle woorden die overeenkomen met een zoekterm highlighten. Die woorden moeten case-insenstive gematched worden, waarbij ze ook los in de tekst moeten staan. Dus niet onderdeel uitmaken van een ander woord. Het highlighten daar ben ik wel uit, alleen werkt het zoeken nog niet perfect.
Tot nu toe ben ik tot hier gekomen (versie PHP 4.1.2):
(?!\s) zou moeten checken of de match voorafgegaan wordt door een whitespace karakter;
(?=[ ;?,!.\s]) zou moeten checken of de match gevolgd wordt door een spatie, punt-komma, etc.
Alleen werkt het niet goed. Als ik in de string "Es desse dest, bes es Es Es, zes." zoek op "es", dan krijg ik:

Waarschijnlijk staat er toch ergens een haakje verkeerd maar ik zie het niet meer... kan iemand zijn licht hierop laten schijnen?
Reuze bedankt, Sander
Al avonden ben ik aan het stoeien met het volgende. Veel reg expr. tutorials gelezen en gezocht, maar ik kom net niet uit het laatste stukje.
Ik wil in een string (vaak een lap tekst met HTML-tags) alle woorden die overeenkomen met een zoekterm highlighten. Die woorden moeten case-insenstive gematched worden, waarbij ze ook los in de tekst moeten staan. Dus niet onderdeel uitmaken van een ander woord. Het highlighten daar ben ik wel uit, alleen werkt het zoeken nog niet perfect.
Tot nu toe ben ik tot hier gekomen (versie PHP 4.1.2):
PHP:
1
| $string = preg_replace("|($search)(?!\s)(?=[ ;?,!.\s])|i","$startstylesheetinfo$1$endstylesheetinfo",$string ); |
(?!\s) zou moeten checken of de match voorafgegaan wordt door een whitespace karakter;
(?=[ ;?,!.\s]) zou moeten checken of de match gevolgd wordt door een spatie, punt-komma, etc.
Alleen werkt het niet goed. Als ik in de string "Es desse dest, bes es Es Es, zes." zoek op "es", dan krijg ik:

Waarschijnlijk staat er toch ergens een haakje verkeerd maar ik zie het niet meer... kan iemand zijn licht hierop laten schijnen?
Reuze bedankt, Sander
edit:
De meeste info heb ik van http://www.php.net/manual/en/pcre.pattern.syntax.php
De meeste info heb ik van http://www.php.net/manual/en/pcre.pattern.syntax.php
edit:
typo
typo