在字符串內我想用preg_replace刪除括號內的所有內容。preg_replace問題刪除括號內的所有內容
我的代碼是:
$text = 'i am (really) tired';
$text = preg_replace('#\([A-Z0-9]\)#', '', $text);
echo $text;
但輸出是:
我是(真的)累
任何想法,爲什麼?
在字符串內我想用preg_replace刪除括號內的所有內容。preg_replace問題刪除括號內的所有內容
我的代碼是:
$text = 'i am (really) tired';
$text = preg_replace('#\([A-Z0-9]\)#', '', $text);
echo $text;
但輸出是:
我是(真的)累
任何想法,爲什麼?
您需要打開不區分大小寫的模式,方法是將i
修飾符添加到(?i)
或緊跟正則表達式分隔符後面。而且你也有[A-Z0-9]
後添加+
匹配一個或多個字母數字字符,
$text = 'i am (really) tired';
$text = preg_replace('#\([A-Z0-9]+\)#i', '', $text);
echo $text;
#\([A-Z0-9a-z]+\)#
應該this.i猜測。
沒有量詞(*
,+
或{m,n}
)它只能匹配單個字符。除此之外,[A-Z]
只匹配大寫字母。您也需要指定[a-z]
。 (或指定i
標誌忽略大小寫)
$text = preg_replace('#\([A-Za-z0-9]+\)#', '', $text);