Здравствуйте. Очень нужна ваша помощь. Есть строка - $stroka Нужно выделить из неё все слова и записать в массив строк. Где в каждом элементе массива будет одно слово. Я долго рылся в форумах и нашёл специальную функцию, которая решает мою задачу str_word_count($stroka, 1); Но к сожалению, она работает только для английских слов. Возможно вы сталкивались с этой задачей и нашли способ заставить работать эту функцию с русскими словами, или же написали другой код. Если решение у вас сохранилось, я был бы очень признателен.
В этой функции может быть только один разделитель. А если разделитель должен быть не один, а все цифры, знаки препинания, буквы не русского языка, служебные символы? Возможно, до разбития строки на слова, все разделители заменить на пробелы. И применить функцию explode с пробелом в качестве разделителя. Тогда есть вопрос, как заменить в строке все знаки кроме букв на пробелы?
PHP: <?php $string = 'Я какая то длинная фраза, со знаками препинания. Меня нужно разбить на слова!'; $pattern = '~(\w+)~'; preg_match_all($pattern, $string, $matches); print_r($matches[1]); ?> Код (Text): Array ( [0] => Я [1] => какая [2] => то [3] => длинная [4] => фраза [5] => со [6] => знаками [7] => препинания [8] => Меня [9] => нужно [10] => разбить [11] => на [12] => слова )
PHP: <?php $text = 'Тект в котором есть не только буквы, как latinica так и цифры 1 2 33 56 7 8, но также и разные символы со словами preg_match_all(); PREG_OFFSET_CAPTURE PREG_SET_ORDER/ Эта регулярка выреззает из текста только слова.'; preg_match_all('/[^\W\d][\w]*/', $text, $word_arr); echo "<pre>"; print_r($word_arr); echo "</pre>"; ?>