Предположим, что у меня есть длинная строка, и я хочу сократить ее таким образом, чтобы она содержала ключевое слово (ключевое слово основано на шаблоне, например {query: ABCD: 1234}), за 5 слов до ключевого слова и 5 словпосле этого. Если ключевое слово появляется само по себе, я могу найти его с помощью этого регулярного выражения:
preg_match("/(([^ ]+ ){5})$keyword (([^ ]+ ){5})/", $text, $matches);
Но если ключевое слово прикреплено к некоторым другим символам (например, запятая или точка), приведенное выше регулярное выражение не может его найти. Если я изменю регулярное выражение на это:
preg_match("/(([^ ]+ ){5})$keyword(([^ ]+ ){5})/", $text, $matches);
Он находит ключевое слово, прикрепленное к запятой, но не одно.
Как я могу охватить оба случая, одно ключевое слово и с вложением,с регулярным выражением?