2014-02-09 61 views
-1

我有這個字符串:PHP:之前和每一個括號後添加引號

$海峽= 「訂戶(TG)(次),用戶服務(TG)(次)」

我想前和每一個括號後添加單引號所以現在它看起來像這樣:

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

我怎樣才能做到這一點在PHP?也許與正則表達式?

在此先感謝

+0

http://php.net/str_replace。你的例子是非常不一致的。爲什麼第一次TG /時代獲得)''(和其他TG /時代不是? –

+0

@pswg我的錯誤:(現在更新 – user3288852

+0

@pswg我不知道如何完成它,我參加了我應該使用的地方$ str = preg_replace(「」,「'」,$ str);但我真的不知道 – user3288852

回答

1

只需使用str_replace,是這樣的:

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

$ str = str_replace(array(「(」,「)」),array(「'(」,「')」),$ str); –

1

您可以使用lookarounds:

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

或一個簡單的字符串替換:

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

(這可能是最快的方法)

如果你想處理嵌套括號:

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

好的解決方案!我只是想提醒注意圓括號內的例子,比如「Subscriber((TG)(times))」,但它不能用正則表達式來解決 –

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

$str後添加此代碼是OK!

1

不要過度使用正則表達式,一個簡單的字符串上的每個取代「(」字符和「)」字符就足夠了:

$str = str_replace('(', '`(', $str); 
$str = str_replace(')', ')`', $str); 
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; 
} 

希望它有助於

相關問題