Regex To Break Up camelCase String PHP

Скажем, у меня есть следующая строка:

getPasswordLastChangedDatetime 

Как бы я мог разбить это заглавными буквами, чтобы я мог получить:

 get Password Last Changed Datetime 

Если вас интересуют только символы ASCII:

 $parts = preg_split("/(?=[AZ])/", $str); 

DEMO

Конструкция (?= ..) называется lookahead [docs] .

Это работает, если части только содержат характер капитала в начале. Это становится более сложным, если у вас есть такие вещи, как getHTMLString . Это можно сравнить с:

 $parts = preg_split("/((?<=[az])(?=[AZ])|(?=[AZ][az]))/", $str); 

DEMO

Спрашивая это слишком рано, нашла это:

 preg_replace('/(?!^)[[:upper:]]/',' \0',$test); 

Например:

 (?:^|\p{Lu})\P{Lu}* 

Нет необходимости в сложном решении. Это делает это

 preg_replace('/([AZ])/',"\n".'$1',$string); 

Это, конечно, не позаботится об акронимах

Используйте это: [az]+|[AZ][az]* или \p{Ll}+|\p{Lu}\p{Ll}*

  preg_split("/(?<=[az])(?=[AZ])/",$password)); 
 preg_split('@(?=[AZ])@', 'asAs')