2016-02-20 209 views
-2

如何在使用正則表達式之間刪除大括號和內容?我認爲以下方面會奏效。刪除大括號和內容

$filename = '{test}1234'; 
preg_replace('/\{{^\}}*\}/', '', $filename); 

在上面的例子中,我想以下至後留下的:

我應該提到,大括號之間的內容可以是任何長度,所以這需要是正則表達式。

+0

新建正則表達式。以爲我會有一個去,而不是隻依靠你和其他人...... – ccdavies

+0

'echo preg_replace('/{(.*?)}/','',$ filename);' –

+1

@ccdavies供將來參考,那裏是在線工具來幫助正則表達式寫作,例如https://regex101.com/ –

回答

3

你可以像下面: -

<?php 
    $filename = '{test}1234'; 
    echo preg_replace('/{(.*?)}/', '', $filename); 
?> 

輸出: - 在正則表達式https://eval.in/522259

1

試試這個

$str = '{test}1234'; 
echo $str = trim(preg_replace('/\s*\{[^}]*\}/', '', $str)); 

https://eval.in/522273

+0

呃,不應該[[^]]'是'[^}]'? '\ s *'是什麼,OP沒有要求? – Biffen

3

字符類由[]表示而不是{}。後者用於指示重複次數,如[1-3]{7,8}中從1到3的7到9位數字的字符串。

您想要一個字符類(所有字符,除了大括號大括號)。所以

{^\}}* 

應該成爲

[^}]* 

只是爲了解釋背後的搜索的答案的原因...