2016-07-26 2 views
0

У меня возникла проблема с анализом сообщения, которое я получаю с сервера. Это сообщение:Регулярное выражение для поиска строки между скобками и кавычками

{"":["Current Password is invalid."]} 

То, что я пытаюсь сделать это, чтобы показать текущий пароль неверен в Toast, разбор его с регулярным выражением. До сих пор я получил:

^(\\:\\[\\\"(.*?)\\\"\\]? 

но это действительно не работает. Любые предложения по исправлению регулярного выражения? Имейте в виду, что первые кавычки (до «:») могут быть не всегда пустыми.

+0

Ваш вход выглядит Json так что может быть лучше использовать парсер JSON. – Thomas

+0

Я вижу, что вы используете квант '?' С ']'. Возможно, все, что вам нужно, это '': \\ [\ "([^ \"] +) "и использовать' matcher.find() 'для доступа к значению group (1)'. См. Http://ideone.com/9M5W0r. –

+0

@ WiktorStribiżew Я пробовал это, но он возвратил пустую строку. –

ответ

0

replaceAll() будет работать для вас.

public static void main(String[] args) { 
    String s = "{\"\":[\"Current Password is invalid.\"]}"; 
    System.out.println(s.replaceAll(".*?\\[\"(.*?)\"\\].*", "$1")); 
    // ^^ Extract text between "[" and "] and replace the entire string with it. 
} 

O/P:

Current Password is invalid. 
+0

Работает отлично! Спасибо. –

Смежные вопросы