Исключение PatternSyntaxException при попытке разделить на },{

#java #regex #exception #escaping #split

#java #регулярное выражение #исключение #экранирование #разделение

Вопрос:

Я пытаюсь разбить массив, который я получил через API на сайте, который Java извлекла как String .

 String[] ex = exampleString.split("},{");
  

PatternSyntaxException Выдается. По какой-то причине это действительно не нравится },{ .
Я пытался избежать этого как { , но он говорит, что это незаконный escape.

Каков правильный способ избежать этой строки?

Ответ №1:

По какой-то причине ему действительно не нравится },{.

Это потому, что фигурные скобки ( } и { ) являются специальными символами в регулярных выражениях Java. Если вы пытаетесь использовать их буквально без экранирования, это считается синтаксической ошибкой, отсюда и ваше исключение.

Каков правильный способ избежать этой строки?

Также избегайте обратной косой черты, удваивая их. Это для экранирования строк Java. Затем экранированные обратные косые черты не будут заключены в фигурные скобки для регулярного выражения.

 String[] ex = exampleString.split("\},\{");