За последние 24 часа нас посетили 17162 программиста и 1226 роботов. Сейчас ищут 1579 программистов ...

Разделение строки на слова.

Тема в разделе "PHP для новичков", создана пользователем kotmotroskin, 3 фев 2009.

  1. kotmotroskin

    kotmotroskin Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте.

    Очень нужна ваша помощь.
    Есть строка - $stroka
    Нужно выделить из неё все слова и записать в массив строк. Где в каждом элементе массива будет одно слово.

    Я долго рылся в форумах и нашёл специальную функцию, которая решает мою задачу str_word_count($stroka, 1);
    Но к сожалению, она работает только для английских слов. Возможно вы сталкивались с этой задачей и нашли способ заставить работать эту функцию с русскими словами, или же написали другой код. Если решение у вас сохранилось, я был бы очень признателен.
     
  2. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
  3. kotmotroskin

    kotmotroskin Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    В этой функции может быть только один разделитель.
    А если разделитель должен быть не один, а все цифры, знаки препинания, буквы не русского языка, служебные символы?

    Возможно, до разбития строки на слова, все разделители заменить на пробелы. И применить функцию explode с пробелом в качестве разделителя. Тогда есть вопрос, как заменить в строке все знаки кроме букв на пробелы?
     
  4. PHP:
    1. <?php
    2. $string = 'Я какая то длинная фраза, со знаками препинания. Меня нужно разбить на слова!';
    3. $pattern = '~(\w+)~';
    4. preg_match_all($pattern, $string, $matches);
    5.  
    6. print_r($matches[1]);
    7. ?>
    Код (Text):
    1. Array
    2. (
    3.     [0] => Я
    4.     [1] => какая
    5.     [2] => то
    6.     [3] => длинная
    7.     [4] => фраза
    8.     [5] => со
    9.     [6] => знаками
    10.     [7] => препинания
    11.     [8] => Меня
    12.     [9] => нужно
    13.     [10] => разбить
    14.     [11] => на
    15.     [12] => слова
    16. )
     
  5. kotmotroskin

    kotmotroskin Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    Спасибо!
     
  6. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    preg_split
     
  7. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    PHP:
    1. <?php
    2. $text = 'Тект в котором есть не только буквы, как latinica так и цифры 1 2 33 56 7 8, но также
    3. и разные символы со словами
    4. preg_match_all(); PREG_OFFSET_CAPTURE  PREG_SET_ORDER/ Эта регулярка выреззает из текста только слова.';
    5.  
    6. preg_match_all('/[^\W\d][\w]*/', $text, $word_arr);
    7.  
    8. echo "<pre>";
    9. print_r($word_arr);
    10. echo "</pre>";
    11. ?>