String.split ( "_ (Б") - PullRequest
       35

String.split ( "_ (Б")

2 голосов
/ 22 июля 2011

В основном эта строка кода не работает, и я не совсем уверен, почему:

    String[] stringHolder = string.split("_(B");

Я получаю эту ошибку: Незакрытая группа рядом с индексом 3

Эта строкакод работает, однако:

    String[] stringHolder = string.split("_B");

Так что это наводит меня на мысль, что это вызвано "(". Может кто-нибудь сказать мне, как сделать эту работу?

Ответы [ 3 ]

9 голосов
/ 22 июля 2011

( - это специальный символ в регулярном выражении, вам нужно экранировать его с помощью \. И поскольку \ необходимо экранировать внутри строкового литерала, вы добавляете два:

String[] stringHolder = string.split("_\\(B");

Дополнительная информация: Используйте круглые скобки для группировки

5 голосов
/ 22 июля 2011

Метод split() принимает регулярное выражение, а не строковый литерал. Таким образом, вам нужно избежать открывающей скобки / скобки:

String[] stringHolder = string.split("_\\(B");

Скобки - это специальные символы в регулярных выражениях, используемые для групп.

1 голос
/ 22 июля 2011

Некоторые специальные символы необходимо экранировать, возможно, сработает "_\\(B".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...