> > Hi everyone, > > > > I want to highlight (bold) searchterms in text. > > For example, for all words starting with "ethyl": > > a) replace "ethyl" by "<b>ethyl</b>" > > b) replace "Ethyl" by "<b>Ethyl</b>" > > c) replace "ethylene" by "<b>ethylene</b>" > > d) but not "methyl" by "<b>methyl</b>" > > > > Now I use: > > $patterns[0] = "/ethyl/"; > > $replacements[0] = "<b>ethyl</b>"; > > $text = preg_replace($patterns, $replacements, $text); > > > > This works for a) and c), but not for b) and d). > > Any idea how to do this ? > > > > TIA, Cor > > > > Thanks Deniz, > > I tried pattern /^ethyl/i but this does not highlight anything. > I also tried pattern /ethyl/i and this highlights all, but also methyl ... > Any suggestion ? > Yes, the i pattern modifier makes the search case-insensitive, which is what you want. The carat ^ means start of string, so would only word if the pattern was at the beginning of the line - not what you want. Try something like this: /(\s|>)ethyl(\s|<)/i The \s means whitespace so (\s|>) means only match if ethyl is preceded by whitespace or >, i.e. a closing tag. Alternatively, have a look at http://suda.co.uk/projects/SEHL/. Edward -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php