我有这个字符串:
$ str =“订户(TG)(次),订户服务(TG)(次)”
我想在每个括号前后添加单引号,所以现在它看起来像这样:
$str = "Subscriber `(TG)``(times)`, Subscriber Service `(TG)``(times)`"
如何在PHP中完成此操作?也许用正则表达式?
提前致谢
答案 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;
}
希望有所帮助