我想用大写字母拆分我的字符串,但前提是这些字母不是缩写。
考虑以下字符串:
第一个字符串应该变为This Is A Text
,而第二个字符串应该保持为SOS
。
我的方法是:
$old_str = "ThisIsAText";
$arr = explode ( '/(?=[A-Z])/', $old_str );
$new_str = implode ( " ", $arr );
这只能用1个功能完成吗? 此外,这并不考虑缩写。
答案 0 :(得分:2)
我认为你应该像这样使用preg_replace:
$result = trim(preg_replace("/(?<![\^A-Z])([A-Z])/", " $1", "ThisIsAText"));
这是在每个大写字母之前添加一个空格,而不是另一个大写字母。
不幸的是,这并没有分裂&#34; ThisIsAText&#34;正确的,因为A后跟一个大写字母T.
这样可以更好地定义您所认为的&#34;缩写&#34;将有助于提供更好的解决方案。