replaceAll的问题(我想删除[*]的所有发生)

Nul*_*ion 1 java regex replace

我有一些文字,如[1],[2],[3]等...

例如:既有永久[1]收藏品,也有临时[2]当代艺术和摄影展览.[6]

我想删除这些单词,所以字符串必须是这样的:

例如:既有永久收藏品,也有当代艺术和摄影的临时展览.

我尝试使用:s = s.replaceAll("[.*]", "");但它只是从文本中删除点(.).

这是实现它的正确方法吗?

谢谢

ass*_*ias 9

这是因为[并且]是正则表达式标记.这应该工作:

s = s.replaceAll("\\[\\d+\\]","");
Run Code Online (Sandbox Code Playgroud)

(假设你总是有数字[]).

如果它可以是任何字符:

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

(感谢@PeterLawrey).

  • 尝试`\\ [.*?\\]`进行非贪婪匹配 (2认同)