11

この同様の質問を見つけましたが、私の質問には答えません。 Split word by capital letter .

キャメルケースの紐を持っています。以下のように、その文字列を大文字ごとに分割したいと思います。

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

私はここまで来ました:

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

しかし、結果の配列は常に先頭が空の値になります! $partsこのように見えます

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

配列の先頭にある空の値を取り除くにはどうすればよいですか?

4

3 に答える 3

22

次のように PREG_SPLIT_NO_EMPTY フラグを使用できます。

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

preg_splitのドキュメントを参照してください。

于 2013-02-27T23:35:06.333 に答える
3

肯定的な後読みが必要です。これを試して:

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

array(2) {
  [0]=>
  string(5) "Camel"
  [1]=>
  string(4) "Case"
}
于 2013-02-27T23:39:13.803 に答える
2

配列フィルターを使用して、すべての空の値を削除できます。

$parts = array_filter( $parts, 'strlen' );
于 2013-02-27T23:35:32.063 に答える