0

假设我有一个字符串:

"\System\Classes\SomeClass"

我想将其转换为:

"\system\classes\someClass"

我该怎么做 - 将每个“\X”转换为“\x”?我应该使用哪个正则表达式,我可以使用正则表达式吗?(据我所知,他们只搜索搜索模式的第一次出现)。

4

3 回答 3

1

试试这个 -演示

$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);
于 2012-12-01T11:44:53.487 回答
1

您只想将 后面的字母小写\,对吗?我建议您按照 Ajmal Salim的建议拆分字符串\,然后在每个字符串上使用。lcfirst($str)然后你可以再次内爆字符串。所以它会像:

$parts = explode('\\', '\\System\\Classes\\SomeClass');
$parts = array_map(function($item) { return lcfirst($item); }, $parts);
$end   = implode('\\', $parts);
于 2012-12-01T11:45:28.763 回答
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;
于 2012-12-01T11:46:02.337 回答