Здравствуйте!
Нужно найти фрагмент текста из $quote + по пять слов справа и слева от него. Регулярка ловит слова, если буквы находятся внутри слов, но не ловит их на границах. Как ее поправить, что бы ловила везде?
$text = 'Здесь абсолютно комфортно вы можете генерировать тексты-«рыбы» для решения задач в области макетирования.';
$key = 'нер'; // это ловит
// $key = 'ген'; // это не ловит, а надо бы
$quote = preg_quote($key);
$regex = '/(?:[^ ]+ ){0,5}[\p{L}\p{Nd}]+'.$quote.'[\p{L}\p{Nd}]+(?: [^ ]+){0,5}/iu';
if (preg_match_all($regex, $text, $matches)) {
var_export($matches);
}
Вот тут пример с ней же
https://regex101.com/r/lN3yE2/1