in reply to Re^2: Problems searching and highlighting proximity words in a text
in thread Problems searching and highlighting proximity words in a text
That works for me, but I guess there should be some nicer solutions too.if ($content =~ /$par2.*$par1/i) { if ($content =~ /\b($par2)(\W+(?:\w*\W*){1,$distance})?($par1) +\b/i){ warn "IF 2"; my ($par1, $par2, $par3) = ($1, $2, $3); $content =~ s/$par1\Q$par2\E$par3/<$tag$class> $par1<\/$ta +g>$par2<$tag$class> $par3<\/$tag>/gi; } }
works OK and also avoids the excessive backtracking for unsuccessful lookups. You'll have however to add an $4 and use it instead of $3 for the extra new match introduced with this.if ($content =~ /\b($par1)(\W+(\w+\W+){0,$distance})($par2)\b/i) {
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Problems searching and highlighting proximity words in a text
by jrc (Initiate) on May 24, 2010 at 11:30 UTC | |
by Krambambuli (Curate) on May 24, 2010 at 12:05 UTC |