2011-05-27 126 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); 

它将删除第一个匹配的[ ]包括完全的内容。

相关问题