Как получить первую букву каждого слова с помощью регулярных выражений в PHP

У меня есть строковая переменная, и я хочу получить первую букву каждого ее слова. Я хочу, чтобы конечный результат был массивом первых букв.

$language = 'Sample Language';
preg_match('/(\b[a-z])+/i', $language, $match);
print_r($match);

То, что я получаю, это только первая буква первого слова. Выше распечатывается массив ([0] => S [1] => S)

Если я изменю это на

preg_match('/(\bL)+/i', $language, $match);

Я могу получить совпадение для L второго слова. Очевидно, что после первого матча он перестает искать остальных. Я не очень хорош с регулярными выражениями. Кто-нибудь может указать, что я сделал неправильно?

слова во входной строке не всегда разделяются пробелом. Это довольно непредсказуемо. Некоторые форматы, с которыми я сталкивался: "MainLanguage: Language" "MainLanguage, Language" "MainLanguage: Language-SubLanguage" здесь я хочу получить M, L и S

Ответы на вопрос(2)

Ваш ответ на вопрос