PHP:在每个括号前后添加引号

时间:2014-02-09 20:14:30

标签: php regex string

我有这个字符串:

  

$ str =“订户(TG)(次),订户服务(TG)(次)”

我想在每个括号前后添加单引号,所以现在它看起来像这样:

$str = "Subscriber `(TG)``(times)`, Subscriber Service `(TG)``(times)`"

如何在PHP中完成此操作?也许用正则表达式?

提前致谢

5 个答案:

答案 0 :(得分:1)

您可以使用外观:

$str = preg_replace('~(?<=\))|(?=\()~', '`', $str);

或简单的字符串替换:

$arr = array('(' => '`(', ')' => ')`');
$str = strtr($str, $arr);

(这可能是最快的方式)

如果要处理嵌套括号:

$str = preg_replace('~\((?>[^()]++|(?R))*\)~', '`$0`', $str);

答案 1 :(得分:1)

只需使用str_replace,就像这样:

$str = str_replace("(", "'(", $str);
$str = str_replace(")", ")'", $str);

答案 2 :(得分:1)

$str =str_replace('(','`(',$str);
$str =str_replace(')',')`',$str);

$str之后添加此代码即可!

答案 3 :(得分:1)

不要过度使用正则表达式,每个'('char和')'char上的简单字符串替换就足够了:

$str = str_replace('(', '`(', $str);
$str = str_replace(')', ')`', $str);

答案 4 :(得分:0)

鉴于你的字符串,你可以创建一个小函数。

$str = "Subscriber `(TG)``(times)`, Subscriber Service `(TG)``(times)`";
print put($str);

function put($mystring)
{
   $firstRep = str_replace("(", "'('", $mystring);
   $secondRep =  str_replace(")", "')'", $firstRep);

   return $secondRep;
} 

希望有所帮助