2015-04-06 30 views
1

我有下面的模式,它可以正常工作,但我試圖在單引號的情況下添加,但不管我做什麼我都無法使用單引號來處理模式,我試過逃跑等沒有運氣!?Preg用單引號替換模式混淆

$title = preg_replace_callback('/(\"|\()([a-z])/', function($m) { 
    return strtoupper($m[0]); 
}, $title); 

我試過下面,但它似乎並沒有工作。

'/(\"\'|\()([a-z])/' 
+0

嘗試:?'/((\「| \')| \()([AZ])/'這是否爲你做的伎倆 – Rizier123

回答

2

只要把所有三個字符一個字符類中。這\"\'會尋找雙引號,以及下面的單引號。如果沒有,那麼它不會做替換。

$title = '"foo(bar)"'; 
echo preg_replace_callback('/[\'"(]([a-z])/', function($m) { 
    return strtoupper($m[0]); 
}, $title); 

輸出:

"Foo(Bar)" 
+0

或''/ [\'「(] \ K([az])/'' –

+0

這樣做了,我可以在它之前添加\ s以確保空格在字符之前? – llanato

+0

空格在引號之前? –