更改PHP中特定字母的大小写

时间:2011-11-10 20:27:32

标签: php regex

我想更改以下字符串

fgsloiwrthowmwohitjwptpbspdfmjlsihjwslihj

到这个字符串

FGsloIwrtHowMwoHItJwpTpBspDfmJlsIhJwslIHJ

我希望将字母A到J大写,并使用正则表达式单独保留其余字母。

[a-j][A-J]之类的内容。

3 个答案:

答案 0 :(得分:6)

<?php
    $lower = range('a', 'j');
    $upper = range('A', 'J');
    echo str_replace($lower, $upper, 'fgsloiwrthowmwohitjwptpbspdfmjlsihjwslihj');
?>

请参阅rangestr_replace

http://codepad.viper-7.com/I8dV8N

答案 1 :(得分:5)

$old = array('a', 'b', .... , 'j');
$new = array('A', 'B', .... , 'J');

$fixed = str_replace($old, $new, $your_string_here);

答案 2 :(得分:4)

如果您想使用正则表达式,请考虑使用preg_replace_callback

示例:

$string = 'fgsloiwrthowmwohitjwptpbspdfmjlsihjwslihj';
$string = preg_replace_callback('/[a-j]/', create_function('$matches', 'return strtoupper($matches[0]);'), $string);

var_dump($string);

<强>输出:

string(41) "FGsloIwrtHowmwoHItJwptpBspDFmJlsIHJwslIHJ"