Разделить с помощью скобки

Как я могу разделить строку, используя [ как разделитель?

String line = "blah, blah [ tweet, tweet";

если я делаю

line.split("[");

Я получаю сообщение об ошибке

Исключение в потоке "main" java.util.regex.PatternSyntaxException: Незакрытый класс символов рядом с индексом 1 [

Любая помощь?

Ответ 1

[ является зарезервированным char в регулярном выражении, вам нужно его избежать,

line.split("\\[");

Ответ 2

Просто уберите его:

line.split("\\[");

[ - это особый метасимвол в регулярном выражении, который должен быть экранирован, если не внутри класса символов, например, в вашем случае.

Ответ 3

Метод split работает с использованием регулярных выражений. Символ [ имеет особое значение; он используется для обозначения классов символов между [ и ]. Если вы хотите использовать буквенную квадратную скобку, используйте \\[, чтобы избежать ее как специального символа. Там две слэши, потому что обратная косая черта также используется как escape-символ в литералах Java String. Он может немного запутать типизацию регулярных выражений в Java-коде.

Ответ 4

Используйте "\\[" вместо "[".

Ответ 5

Символ [ интерпретируется как специальный символ регулярного выражения, поэтому вам нужно его избежать:

line.split("\\[");