код регулярного выражения preg_split (:)

#php #arrays #regex #string

#php #массивы #регулярное выражение #строка

Вопрос:

Для следующего кода:

 $string = "hello: Mister, Winterbottom";

$words = preg_split("/[s,] /", $string);
print_r ($words);
  

Я получаю:

 Array ( [0] => hello: [1] => Mister [2] => Winterbottom )
  

но я хочу, чтобы результаты были:

 Array ( [0] => hello [1] => Mister [2] => Winterbottom )
  

так что он будет игнорировать двоеточие. Как я могу это сделать?

Комментарии:

1. Используйте /[s,:] / . Или /W /

Ответ №1:

Если вам нужно расширить свой символьный класс с : помощью, просто поместите его в него и используйте

 /[s,:] /
  

Смотрите его демонстрацию здесь. Или просто используйте /W / для разделения 1 символов, не являющихся словами.

 $words = preg_split("/[s,:] /", $string);
print_r ($words);
// Or
print_r(preg_split("/W /", $string));
  

Смотрите демонстрацию PHP

Ответ №2:

 $string = "hello: Mister, Winterbottom";

$words = preg_split("/[s,] /", $string);

$words[0] = rtrim($words[0],":");

print_r ($words);
  

Комментарии:

1. Ответы должны иметь объяснение.

2. Хотя этот фрагмент кода может решить вопрос, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причин вашего предложения кода.