用大写字母分隔,没有缩写

时间:2015-12-27 17:58:42

标签: php string

我想用大写字母拆分我的字符串,但前提是这些字母不是缩写。

考虑以下字符串:

  • ThisIsAText
  • SOS

第一个字符串应该变为This Is A Text,而第二个字符串应该保持为SOS

我的方法是:

$old_str = "ThisIsAText";
$arr = explode ( '/(?=[A-Z])/', $old_str );
$new_str = implode ( " ", $arr );

这只能用1个功能完成吗? 此外,这并不考虑缩写。

1 个答案:

答案 0 :(得分:2)

我认为你应该像这样使用preg_replace:

$result = trim(preg_replace("/(?<![\^A-Z])([A-Z])/", " $1", "ThisIsAText"));

这是在每个大写字母之前添加一个空格,而不是另一个大写字母。

不幸的是,这并没有分裂&#34; ThisIsAText&#34;正确的,因为A后跟一个大写字母T.

这样可以更好地定义您所认为的&#34;缩写&#34;将有助于提供更好的解决方案。