Я пытаюсь исправить некоторый код в Laravel, который сопоставляет ключевые слова с их вхождениями в тексте. Поскольку это слова и текст на иностранном языке, я сталкиваюсь с некоторыми проблемами - я могу сказать, что, скажем, "stackoverflow!" должно соответствовать «stackoverflow» с этой строкой:
$test = str_replace(array(',','.','!',';',':','?'), '', trim(strtolower($word)));
но я не знаю, как его кодировать так, чтобы он 1. не разбивался на гильемы и инвертированные знаки препинания, а 2. успешно обрабатывал символы с ударением. Я написал строку, предназначенную для того, чтобы просто исключить из рассмотрения все, что не было буквой:
$test = preg_replace("/[^\x41-\x7A\xC0-\xFF]/","", $test);
но это худший из обоих миров - он не работает на гильеметах, но также не обеспечивает совпадения ключевых слов с акцентами, несмотря на то, что они находятся в указанном диапазоне символов.
Само собой разумеется, я пытался написать регулярное выражение, чтобы идентифицировать самих персонажей, их HTML-имена ... и многое другое.
Если проблема только в том, что не удалось распознать расширенную таблицу символов, как я могу это исправить?
Спасибо!