Определить и получить заглавные слова в строке в php

Есть ли функция или способ получения слов CAPS в предложении или строке? Пример: $str = "ABOUT US who we are" как я могу идентифицировать и получать заглавные слова "ABOUT US" и отделять его на маленькие буквы "who we are" ? Так что выход будет $str1 = "ABOUT US" и $str2 = "who we are" … спасибо!

Вы можете использовать для него регулярное выражение:

 preg_match_all('/\b([AZ]+)\b/', $str, $matches); 

Чтобы соответствовать строчным словам, используйте это:

 preg_match_all('/\b([az]+)\b/', $str, $matches2); 

Затем вы можете использовать такие функции, как implode() для построения строк.

В дополнение к решению регулярных выражений PHP имеет функцию neato ctype_upper (), которая проверяет, является ли строка в верхнем регистре. Вы можете кормить текст, который вы обрабатываете через него по одному символу за раз. Если он возвращает true, добавьте символ к вашей $str1 . Когда он вернет false, добавьте оставшуюся часть строки в строку $str2 .

Для большей гибкости вы можете создавать $ str1 и $ str2 элементы в массиве. Затем вы можете добавлять новый элемент каждый раз, когда текст, который вы разбираете, меняет регистр. Например, текст "HELLO AND welcome to STACKOVERFLOW bro" закончится как ["HELLO AND", "welcome to", "STACKOVERFLOW", "bro"] . Или у вас могут быть отдельные массивы для строчных и строчных фрагментов текста.