Раздел вопрос-ответ Как получить все слова из строки на php?

Строка может быть на любом языке (русский, латиница, иероглифы).
Как получить массив слов из строки на php? mb_explode функции нет. Может, есть специальное регулярное выражение?

share

1 ответ

/**
 * @param $string
 * @return array
 */
function getWordsFromString($string)
{
	if (preg_match_all("/\b(\w+)\b/ui", $string, $matches)) {
		return $matches[1];
	}

	return array();
}

Если кодировка utf-8 (если используете юникод), то обязательно нужно применять модификатор u, иначе не будет матчить. Метасимвол \b в регулярном выражении означает границу слова.

Результат работы функции будет таким:

$string = 'слово1, слово2 слово3: слово4.';
var_dump(getWordsFromString($string));
array(4) {
  [0]=>
  string(11) "слово1"
  [1]=>
  string(11) "слово2"
  [2]=>
  string(11) "слово3"
  [3]=>
  string(11) "слово4"
}

 

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ