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

直後の文字だけを小文字にしたいです\よね?文字列をで分割してから、AjmalSalimが提案したようにそれぞれで\使用することをお勧めします。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 に答える