2016-10-17 2 views
1

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

$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) 

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

+2

Используйте '/ [\ с,:] + /'. Или '/ \ W + /' –

ответ

1

Если вам необходимо расширить класс символов с :, просто положить его в нем и использовать

/[\s,:]+/ 

См its demo here. Или просто используйте /\W+/ для разделения с символами 1 + без слова.

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

См PHP demo

+1

thx для ответа. Первый работает для меня отлично! –

0
$string = "hello: Mister, Winterbottom"; 

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

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

print_r ($words); 
+0

Ответы должны содержать пояснения. – chris85

+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – andreas

Смежные вопросы