java.util.regex.PatternSyntaxException:无与伦比的结束')' :在string.split操作期间

时间:2015-06-15 07:38:13

标签: java regex split

我正在尝试执行类似以下的拆分:

String str = "({Somestring 1 with a lot of braces and commas}),({Somestring 12with a lot of braces and commas})";
println str.split("}),({");

但我明白了:

  

java.util.regex.PatternSyntaxException:无与伦比的结束')'接近指数0   }),({

显然,我的字符串被视为正则表达式。

有没有办法逃脱这个字符串?

3 个答案:

答案 0 :(得分:4)

字符public class SettingsModel { public CurrencyDictionaryModel CurrencyDictionary { get; set; } } (以及){是regexp中的特殊字符。你必须逃避这些:

}

答案 1 :(得分:1)

不是手动转义字符串,而是将其视为文字,而不是正则表达式:

println str.split(Pattern.quote("}),({"));

答案 2 :(得分:0)

Java characters中必须为escaped

regular expressions是:

  

[] {}()* + - ^ $ |?

 public static void main(String[] args) {
        String str = "({Somestring 1 with a lot of braces and commas}),({Somestring 12with a lot of braces and commas})";
        String[] array = str.split("\\}\\),\\(\\{");
        System.out.println(array.length);
    }