我想做这样的事情:
$string = "Lorem ipsum DOLOR Sit amet";
...some magic here... -> $finalString
$finalString = "Lorem ipsum dolor Sit amet"
Run Code Online (Sandbox Code Playgroud)
基本上我不想将所有完全大写的单词转换为完整的小写单词.
小智 6
这是我最初建议的:
$finalString = preg_replace("/\\b[A-Z]+\\b/e", "strtolower(\"\\0\");", $string);
Run Code Online (Sandbox Code Playgroud)
但是,从PHP 5.5.0开始,preg_replace中的e修饰符已被弃用.所以正确的替代方案是preg_replace_callback:
$string = "Lorem ipsum DOLOR Sit amet";
$finalString = preg_replace_callback(
"/\\b[A-Z]+\\b/",
function($matches){
return strtolower($matches[0]);
},
$string
);
Run Code Online (Sandbox Code Playgroud)