我发现了类似的问题,但它没有回答我的问题Split word by capital letter。
我有一个camel case的字符串。我想在每个大写字母上打破那个字符串,如下所示。
$str = 'CamelCase'; // array('Camel', 'Case');
我到目前为止:
$parts = preg_split('/(?=[A-Z])/', 'CamelCase');
但是结果数组在开头总是以空值结束! $parts
看起来像这样
$parts = array('', 'Camel', 'Case');
如何摆脱数组开头的空值?
答案 0 :(得分:15)
您可以使用PREG_SPLIT_NO_EMPTY标志,如下所示:
$parts = preg_split('/(?=[A-Z])/', 'CamelCase', -1, PREG_SPLIT_NO_EMPTY);
答案 1 :(得分:3)
你需要一个积极的外观。试试这个:
$parts = preg_split('/(?<=\\w)(?=[A-Z])/', 'CamelCase')
array(2) {
[0]=>
string(5) "Camel"
[1]=>
string(4) "Case"
}
答案 2 :(得分:2)
数组过滤器可用于删除所有空值:
$parts = array_filter( $parts, 'strlen' );