Попробуйте это:
<?php
$string = "foo bar baz; boo, bat";
$words = preg_split('/[,.\s;]+/', $string);
var_dump($words);
// -> ["foo", "bar", "baz", "boo", "bat"]
Шаблон объяснил
[]
- это класс символов, класс символов состоит из нескольких символов и соответствует одному из символов, которые находятся внутри класса
.
соответствует символу .
, его не нужно экранировать внутри классов символов. Хотя это нужно избегать, когда нет в классе символов, потому что .
означает «соответствовать любому символу».
\s
соответствует пробелу
;
, чтобы разделить точку с запятой, это не должно быть экранировано, потому что это не имеет особого значения.
+
в конце гарантирует, что пробелы после разделенных символов не будут отображаться как совпадающие