现在,我通过一个拆分、切片和内爆来实现这一点:
$exploded = implode(' ',array_slice(preg_split('/(?=[A-Z])/','ThisIsATest'),1));
//$exploded = "This Is A Test"
更漂亮的版本:
$capital_split = preg_split('/(?=[A-Z])/','ThisIsATest');
$blank_first_ignored = array_slice($capital_split,1);
$exploded = implode(' ',$blank_first_ignored);
但是,问题是当你输入
'SometimesPDFFilesHappen'
,我的实现将(错误地)解释为
'Sometimes P D F Files Happen'
.
我怎样才能(简单地)使我的剧本浓缩
'P D F'
到
'PDF'
?
我对何时应该拆分的条件是从第一个大写字母开始,在最后一个大写字母之前结束,以适应下一个单词。
是的,我知道有些模棱两可的地方,比如
'ThisIsAPDFTest'
,这将被解释为
'This Is APDF Test'
. 然而,我想不出一个“聪明”的方法来避免这一点,所以这是一个可以接受的妥协。