Вы можете использовать preg_split
с этим регулярным выражением:
/[^A-Za-z\s]\s*/
Он ищет символ, который не является буквой или пробелом, за которым, возможно, следует один или несколько пробелов.Это учитывает ситуацию, когда после знака препинания нет места.Обратите внимание, что мы используем флаг PREG_SPLIT_NO_EMPTY
для preg_split
, поэтому, если строка заканчивается знаком препинания, мы не получаем пустых строк в выводе.
$string = "hello, how are you?you are fine. i am good too.";
$output = preg_split('/[^A-Za-z\s]\s*/', $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($output);
Вывод:
Array (
[0] => hello
[1] => how are you
[2] => you are fine
[3] => i am good too
)
Демонстрация на 3v4l.org