Добрый день. Есть регулярное выражение: Код (Text): /^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/ Оно предназначено для дробления фамилии и инициалов по массиву, например: PHP: $test = 'Петров С.В.'; $array = preg_split('/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/', $test); По логике должно получится: Array ( [0] => 'Петров' [1] => 'С' [2] => 'В' ) Но почему то не работает. На этом сайте все работает как надо https://regexr.com/ И в javascript тоже все работает: Код (Javascript): var test = 'Петров С.В.'; var array = test.split(/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/); alert(array); Что я делаю не так в php?
@Artur_hopf, потому что preg_split именно разбивает по шаблону, а не находит части, соответствующие шаблону. То есть, если шаблон будет \s+, то получите Петров и С.В.