diff --git a/inc/fulltext.php b/inc/fulltext.php index 8f4db111d1f61a6bca6e8db3d8a4c47d67215bed..eab8850dcc22cd1d645dd66e0f953be223306b42 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -394,19 +394,24 @@ function ft_snippet_re_preprocess($term) { return $term; } + // unicode word boundaries + // see http://stackoverflow.com/a/2449017/172068 + $BL = '(?<!\pL)'; + $BR = '(?!\pL)'; + if(substr($term,0,2) == '\\*'){ $term = substr($term,2); }else{ - $term = '\b'.$term; + $term = $BL.$term; } if(substr($term,-2,2) == '\\*'){ $term = substr($term,0,-2); }else{ - $term = $term.'\b'; + $term = $term.$BR; } - if($term == '\b' || $term == '\b\b') $term = ''; + if($term == $BL || $term == $BR || $term == $BL.$BR) $term = ''; return $term; }