我发现了这个类似的问题,但它没有回答我的问题,按大写字母分割单词。
我有一个驼峰型的字符串。我想在每个大写字母处将字符串分开,如下所示。
$str = 'CamelCase'; // array('Camel', 'Case');
我已经走到这一步了:
$parts = preg_split('/(?=[A-Z])/', 'CamelCase');
但是结果数组总是在开始时以空值结束!$parts
看起来像这样
$parts = array('', 'Camel', 'Case');
如何去掉数组开头的空值?
您可以像这样使用PREG_SPLIT_NO_EMPTY标志:
$parts = preg_split('/(?=[A-Z])/', 'CamelCase', -1, PREG_SPLIT_NO_EMPTY);
查看preg_split的文档。
你需要一个积极的向后看。试试这个:
$parts = preg_split('/(?<=\w)(?=[A-Z])/', 'CamelCase')
array(2) {
[0]=>
string(5) "Camel"
[1]=>
string(4) "Case"
}
数组过滤器可用于删除所有空值:
$parts = array_filter( $parts, 'strlen' );