Разделить предложение на слова

например, у меня есть такие сообщения:

$text = "word, word wd word!.."; 

Мне нужен массив вроде этого

 Array ( [0] => word [1] => word [2] => wd [3] => word". ) 

Я очень новичок в регулярном выражении.

Вот что я пробовал:

 function divide_a_sentence_into_words($text){ return preg_split('/(?<=[\s])(?<!f\s)\s+/ix', $text, -1, PREG_SPLIT_NO_EMPTY); } 

это

 $text = "word word, wd word!.."; $split = preg_split("/[^\w]*([\s]+[^\w]*|$)/", $text, -1, PREG_SPLIT_NO_EMPTY); print_r($split); 

работает, но у меня есть второй вопрос, я хочу написать список в mu regular exppression «wd» – это особый случай .. например, это мои слова «wd», «mr.», «dr.»

если я возьму текст:

$ text = "word, dr. word wd word! ..";

Мне нужен массив:

 Array ( [0] => word [1] => dr. [2] => word [3] => wd [4] => word ) 

Извините за плохой английский…

    Используйте функцию explode, которая разделит строку на массив

     $words = explode(" ", $text); 

    использование

     str_word_count ( string $string [, int $format = 0 [, string $charlist ]] ) 

    см. здесь http://php.net/manual/en/function.str-word-count.php, он делает именно то, что вы хотите. Итак, в вашем случае:

     $myarray = str_word_count ($text,1); 

    Использование preg_split с регулярным выражением /[^\w]*([\s]+[^\w]*|$)/ должно работать нормально:

     <?php $text = "word word wd word!.."; $split = preg_split("/[^\w]*([\s]+[^\w]*|$)/", $text, -1, PREG_SPLIT_NO_EMPTY); print_r($split); ?> 

    DEMO

    Вывод:

     Array ( [0] => word [1] => word [2] => wd [3] => word )