感谢所有能帮助我的人。我需要删除以“{”开头并以“}”结尾的字符串中的所有记录,包括括号。
我试过这样的事情:
value.replaceAll("{.}","")
答案 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("\\{.*\\}",""));
花括号是特殊字符。所以你可以尝试这个。