将字符串转换为大写,除了php中的()中的字符串

时间:2014-05-28 06:32:22

标签: php

如何将字符串转换为大写,除了php中的()中的字符串

例如:abc(abc)(ABC)(abc)abc>>>更改为>>> ABC(abc)(ABC)(abc)ABC

....
$str = 'abc(abc)(ABC)(abc)abc abc(abc)';
function toupper($str) {

???

}
....

3 个答案:

答案 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)");

DEMO

答案 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;