2011-05-27 174 views
2

我有一些麻煩得到一些正則表達式來刪除一些文本,我需要[text][text][maybehere]anytext刪除。正則表達式刪除[]和其中的所有內容

所以基本上是第一組[]和其中的任何東西。文本的其餘部分可以包含任何東西,包括空格,並可能有另一組[]。

我有這個:/\[.*\]/但它是刪除所有的brakets和內容。

我正在使用PHP

任何想法?

回答

3

注意在preg_replace的第四個參數(更換極限):

$str = preg_replace('/\[[^\]]*\]/', '', $str, 1); 
+1

@webnoob:對於一個可以理解的正則表達式介紹檢查http://regular-expressions.info/ - 和http://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the - 一些正則表達式工具的開源世界。 – mario 2011-05-27 23:15:19

0

如何:

"/^\[[^\]]*\](.*)$/" 
+0

一些細節可以幫助,+你有一個雙引號在那裏失蹤 – Ibu 2011-05-28 06:37:59

2

我建議

preg_replace('#\[.*?\]#', '', $stringVar, 1); 

它將刪除第一個匹配的[ ]包括完全的內容。

相關問題