我正在尝试执行类似以下的拆分:
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 }),({
显然,我的字符串被视为正则表达式。
有没有办法逃脱这个字符串?
答案 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);
}