替换Java字符串中的所有{any characters}

时间:2013-07-11 14:17:29

标签: java regex

感谢所有能帮助我的人。我需要删除以“{”开头并以“}”结尾的字符串中的所有记录,包括括号。

我试过这样的事情:

value.replaceAll("{.}","")

5 个答案:

答案 0 :(得分:1)

value = value.replaceAll("\\{.*\\}",""));

由于{}是特殊字符,因此您必须使用\\来逃避它们。

注意:您没有指定是否必须处理嵌套括号或一系列括号。上述解决方案只删除了从{}的所有字符(也删除括号本身)。

答案 1 :(得分:1)

目前,你正在寻找内部只有一个角色的大括号,除非你没有逃过大括号,这在正则表达式中具有特殊意义。所以它应该是:\\{.*\\}*用于:匹配尽可能多的字符。)

但是如果你有一个像{ab}cd{ef}这样的输入而你想获得cd,你需要使用非贪婪的算子,否则你将匹配整个字符串。

在这种情况下,你可以试试这个:

value = value.replaceAll("\\{.*?\\}","");

答案 2 :(得分:0)

大括号是正则表达式中的特殊字符,因此您必须将它们转义。

value.replaceAll("\\{[^\\}]*\\}", "");

正如您所看到的,您还必须确保在要替换的子字符串中没有其他右括号,以避免在字符串中有多条记录时删除很多用“{”结尾为“}”。

如果你有嵌套括号,这将不起作用,其他解决方案也不会。

答案 3 :(得分:0)

试试这个

    String a="{hi}a";
    String arr=a.replaceAll("\\{.*?\\}","");
    System.out.println(arr);

答案 4 :(得分:0)

value = value.replaceAll("\\{.*\\}",""));

花括号是特殊字符。所以你可以尝试这个。