如何将字符串转换为大写,除了php中的()中的字符串
例如:abc(abc)(ABC)(abc)abc
>>>更改为>>> ABC(abc)(ABC)(abc)ABC
....
$str = 'abc(abc)(ABC)(abc)abc abc(abc)';
function toupper($str) {
???
}
....
答案 0 :(得分:1)
如果字符串模式保持一致,
function toUpper($str)
{
$exp = explode('(', $str);
$to_up = strtoupper($exp[0]);
$inside_brackets = '('.$exp[1];
return $to_up.$inside_brackets;
}
echo toUpper("abc(def)");
答案 1 :(得分:0)
试试这个 - >
$str = 'abc(abc)';
$pos = strpos($str,'(');
$str1 = strtoupper(substr($str,0,$pos));
echo $str1.substr($str,$pos);
答案 2 :(得分:0)
您可以使用preg_replace_callback();
以下是一个例子:
<?php
function callback($matches)
{
return strtoupper($matches[1]).'('.$matches[2].')';
}
$str = 'test(args)';
echo preg_replace_callback('#(.+)\((.+)\)?#','callback',$str);
&GT;