2010-11-22 307 views
1
$item = "(1) Robin Hood (hero)"; 

括號內的文字可以更改。從字符串中刪除()

如何從字符串中刪除所有帶有文字的括號?

我們應該得到這樣的:

$item = "Robin Hood"; 

謝謝!

回答

6

您可以使用preg_replace爲:

$item = preg_replace('/\(.*?\)/s','',$item); 

看起來你也想刪除前導和更換後尾隨空格。
您可以利用trim爲爲:

$item = trim(preg_replace('/\(.*?\)/s','',$item)); 

使用的正則表達式是\(.*?\)

  • ()用於分組正則表達式元字符 。要匹配文字 pamentalhesis,您需要通過在\之前將它們轉義出 。
  • 您可以通過使用.*?來匹配 括號之間的任意文本。您 也可以使用[^)]*
  • .默認情況下不匹配 換行符。爲了與新行 匹配,我們使用s修飾符。沒有它 我們將無法做更換 在"(hello\nworld) Hi"
+1

就是你和stillstanding的解決方案之間的區別? – James 2010-11-22 12:44:00

+0

@快樂:我已通過信息更新。 – codaddict 2010-11-22 12:49:51

+0

爲什麼'。*?'?不僅僅是'。*'還能工作嗎? ('.'匹配任何一個字符,'*'重複指定符零次或多次,然後匹配是否存在零個或多個字符。) – 2010-11-22 13:10:32