我有一个字符串:CamelCaseString
我想要使用explode()、split()或其他更好的方法来将这个字符串按大写字母拆分成单独的单词。
最简单的方法是什么?
--- 解决方案更新 ---
此链接指向一个略有不同的问题,但我认为答案通常比当前页面上的答案更有用: 如何在PHP和正则表达式中在大写字母处添加空格,但保持连续的大写字母在一起?
我有一个字符串:CamelCaseString
我想要使用explode()、split()或其他更好的方法来将这个字符串按大写字母拆分成单独的单词。
最简单的方法是什么?
--- 解决方案更新 ---
此链接指向一个略有不同的问题,但我认为答案通常比当前页面上的答案更有用: 如何在PHP和正则表达式中在大写字母处添加空格,但保持连续的大写字母在一起?
你应该使用正则表达式。
试一下这个:preg_match_all('/[A-Z][^A-Z]*/', "CamelCaseString", $results);
包含所有单词的数组将保存在$results[0]中。
Array ( [0] => Array ( [0] => 骆驼 [1] => 大写字母开头 [2] => 字符串 ) )
。 - Ivan$split = preg_split("/(?<=[a-z])(?![a-z])/", "CamelCaseString", -1, PREG_SPLIT_NO_EMPTY);
split() 函数已被弃用,建议采用其他函数来解决问题。
explode()
函数存在问题,因为它会移除所谓的“needle”(在您的情况下是大写字母)。因此,通常的 explode 无法完成任务。 - Manuelpreg_split('/[ABCDEFGHIJKLMNOPRSTUVWXYZ]/', "CamelCaseString", -1, PREG_SPLIT_NO_EMPTY)
但是它返回的数组中没有大写字符。 - Ruan Mendes