正则表达式分解camelCase字符串PHP

rya*_*zec 3 php regex string

假设我有以下字符串:

getPasswordLastChangedDatetime
Run Code Online (Sandbox Code Playgroud)

我怎么能用大写字母拆分它以便我能得到:

get
Password
Last
Changed
Datetime
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 6

如果你只关心ASCII字符:

$parts = preg_split("/(?=[A-Z])/", $str);
Run Code Online (Sandbox Code Playgroud)

DEMO

(?= ..)构造称为lookahead [docs].

如果零件在开头只包含大写字符,则此方法有效.如果你有类似的东西会变得更复杂getHTMLString.这可以匹配:

$parts = preg_split("/((?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z]))/", $str);
Run Code Online (Sandbox Code Playgroud)

DEMO