【发布时间】:2011-03-17 14:12:57
【问题描述】:
现在,我正在使用拆分、切片和内爆来实现这一点:
$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'。但是,我想不出一种“聪明”的方式来避免这种情况,所以这是一个可以接受的折衷方案。
【问题讨论】:
标签: php regex text-processing