2
我需要在大寫字母和數字之間進行拆分,並將一系列大寫字母拆分爲字符串中任意位置的整個單詞。這可能是最簡單的,只是舉例說明,請參見下面的測試腳本:需要一個複雜的正則表達式來分割駱駝案例和數字
$tests = array('FooBar', 'fooBar', 'Foobar', 'FooBar1', 'FooBAR', 'FooBARBaz', '1fooBar', '1FooBar', 'FOOBar');
foreach($tests as $test){ echo $test . " => " . split_camel_case($test) . "<br />"; }
function split_camel_case($root){
return implode(' ', preg_split('/(?<=[a-z])(?![a-z])/', $root, -1, PREG_SPLIT_NO_EMPTY));
}
我從得到的是:
FooBar => Foo Bar
fooBar => foo Bar
Foobar => Foobar
FooBar1 => Foo Bar 1
FooBAR => Foo BAR
FooBARBaz => Foo BARBaz
1fooBar => 1foo Bar
1FooBar => 1Foo Bar
FOOBar => FOOBar
最後四個是不正確的,他們應該是:
FooBARBaz => Foo BAR Baz
1fooBar => 1 foo Bar
1FooBar => 1 Foo Bar
FOOBar => FOO Bar
我發現了另一個問題StackOverflow的格局,但我一直沒能找到任何做正是我需要的。任何幫助將不勝感激。
太感謝你了,完美的作品! – Michael