假设我有一个字符串:
"\System\Classes\SomeClass"
我希望将其转换为:
"\system\classes\someClass"
我该怎么做 - 将每个“\ X”转换为“\ x”?我应该使用哪个正则表达式,我可以使用正则表达式吗? (据我所知,他们只搜索搜索模式的第一次出现)。
答案 0 :(得分:1)
试试这个 - DEMO
$string = "\System\Classes\SomeClass";
$array = explode("\\", $string);
for ( $i = 0, $len = sizeof($array); $i < $len; $i++ ) {
$array[$i] = lcfirst($array[$i]);
}
$new_string = implode("\\", $array);
答案 1 :(得分:1)
您希望仅在\
后面小写字母,对吧?我建议你将字符串拆分为\
,然后在Ajmal Salim建议的每一个上使用lcfirst($str)
。然后你可以再次破坏字符串。所以它会像:
$parts = explode('\\', '\\System\\Classes\\SomeClass');
$parts = array_map(function($item) { return lcfirst($item); }, $parts);
$end = implode('\\', $parts);
答案 2 :(得分:1)
如果最后一个单词总是
,也许这样$str="\System\Classes\SomeClass";
$str2=strtolower($str);
$strArr=explode("\\",$str2);
$newStr=preg_replace('~class~','Class',$strArr[3]);
$complete=$strArr[1].'\\'.$strArr[2].'\\'. $newStr;
echo $complete;