替换正则表达式java中[和]之间的所有内容

Sai*_*der 12 java regex

我需要删除之间的所有内容[ ].

例:

我的意见: ab[cd]e

预期产出: abe.


我尝试使用\[\],但据报道它是一个非法的转义序列.

任何人都可以帮我这个.

PS:我使用的是Java 1.7.

Joã*_*lva 18

用途String#replaceAll:

String s = "ab[cd]e";
s = s.replaceAll("\\[.*?\\]", ""); // abe
Run Code Online (Sandbox Code Playgroud)

这将用空字符串替换[,]以及其间的所有内容.

  • @maks:因为`*`是一个贪婪的量词.因此,如果你有字符串`ab [cd] e [z]`,使用`\\ [.*\\]`会导致'ab`而不是`abe`,因为`.*`会匹配所有内容到最后的`]`.通过使用`?`,你使量词不情愿而不是贪婪.换句话说,每次使用一个字符时,正则表达式都会*前瞻*并查看下一个字符是否是`]`,而不是消耗整个字符串然后再回溯. (3认同)

Tad*_*dgh 7

尝试replaceAll方法

str = str.replaceAll("\\[.*?\\]","")
Run Code Online (Sandbox Code Playgroud)