Ответ 1
[
является зарезервированным char в регулярном выражении, вам нужно его избежать,
line.split("\\[");
Как я могу разделить строку, используя [
как разделитель?
String line = "blah, blah [ tweet, tweet";
если я делаю
line.split("[");
Я получаю сообщение об ошибке
Исключение в потоке "main" java.util.regex.PatternSyntaxException: Незакрытый класс символов рядом с индексом 1 [
Любая помощь?
[
является зарезервированным char в регулярном выражении, вам нужно его избежать,
line.split("\\[");
Просто уберите его:
line.split("\\[");
[
- это особый метасимвол в регулярном выражении, который должен быть экранирован, если не внутри класса символов, например, в вашем случае.
Метод split
работает с использованием регулярных выражений. Символ [
имеет особое значение; он используется для обозначения классов символов между [
и ]
. Если вы хотите использовать буквенную квадратную скобку, используйте \\[
, чтобы избежать ее как специального символа. Там две слэши, потому что обратная косая черта также используется как escape-символ в литералах Java String. Он может немного запутать типизацию регулярных выражений в Java-коде.
Используйте "\\["
вместо "["
.
Символ [
интерпретируется как специальный символ регулярного выражения, поэтому вам нужно его избежать:
line.split("\\[");