在PHP中以大写字母分割?

时间:2013-02-27 23:32:35

标签: php preg-split

我发现了类似的问题,但它没有回答我的问题Split word by capital letter

我有一个camel case的字符串。我想在每个大写字母上打破那个字符串,如下所示。

$str = 'CamelCase'; // array('Camel', 'Case');

我到目前为止:

$parts = preg_split('/(?=[A-Z])/', 'CamelCase');

但是结果数组在开头总是以空值结束! $parts看起来像这样

$parts = array('', 'Camel', 'Case');

如何摆脱数组开头的空值?

3 个答案:

答案 0 :(得分:15)

您可以使用PREG_SPLIT_NO_EMPTY标志,如下所示:

$parts = preg_split('/(?=[A-Z])/', 'CamelCase', -1, PREG_SPLIT_NO_EMPTY);

请参阅documentation for preg_split

答案 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' );