2014-10-09 82 views
2

我有一个包含正常英文单词以及方括号内显示的某些信息([])的字符串。删除文本及其内容中的方括号

我需要从字符串中删除所有方括号及其内容。

例如,字符串下面:

字符串: “狗[0]有骨[1] [2]”

需要被重整以:

字符串: “狗有骨”

+2

你为什么要使用正则表达式对于这样一个简单的任务?我会这样做的方式?迭代字符串的字符,跟踪开放和关闭的括号(一个简单的计数器会做;每个[+1]和每个[+1])。如果计数器不为零,则忽略当前字符,否则将其附加到新字符串。 – InBetween 2014-10-09 18:41:57

+0

@In之间如果计数器变为负数“a [b] c] d] e] f [g]” – juharr 2014-10-09 18:47:45

+0

@icemanind我无法看到我的算法在您的示例中失败的位置。只要计数器> 0,它将忽略字符。唯一的缺陷是格式错误的输入字符串(不匹配的括号)。在这种情况下,我会用参数异常保留,因为OP没有指定这是否可能。 – InBetween 2014-10-09 18:49:40

回答

3
\[[^]]*\] 

试试这个。更换empty string。看演示。

http://regex101.com/r/xT7yD8/2

+0

我不认为这适用于不匹配的方括号或嵌套的方括号,例如“abc [d [e] f ]“会变成”abcf“”。 – juharr 2014-10-09 18:45:14

+0

@juharr OP没有提出相同的建议 – vks 2014-10-09 18:59:02