Категория:
Опубликовано:
Regex - разбиваем CamelCase на слова
Еще одна регулярка в коллекцию.
На этот раз, для разбивки CamelCase'а на слова.
Такой таск нужен не так часто, но когда понадобится - пусть уж лучше будет ;)
Итак, сам регекс вот:
((?<=\p{Ll})\p{Lu}|\p{Lu}(?=\p{Ll}))
Ну, и процедурка под нее:
/**
* Replace CamelCased text by text with spaces.
*
* @param string $text Text to replace.
*
* @return string
*/
function splitByCapital(string $text): string
{
$pattern = '/((?<=\p{Ll})\p{Lu}|\p{Lu}(?=\p{Ll}))/u';
$result = preg_replace($pattern, ' $1', $text);
return trim($result);
}
Пользоваться, в общем, элементарно:
$text = splitByCapital($camelCasedText);
Юз ит эниуер! :)
Делитесь полезными материалами в социальных сетях.