2016-01-09 2 views
-3

Пожалуйста, помогите мне исправить мой кодкак с помощью регулярных выражений

Pattern p = Pattern.compile("\\{(.*)\\}"); 
String value = "only test {g_url} hahaha {l_user} alallala {l_password} test2"; 
Matcher m = p.matcher(value); 
while (m.find()) { 
    System.out.println("json string= " + m.group(1)); 
} 

Система печати

json string= g_url} hahaha {l_user} alallala {l_password 

Я хочу Система печати

json string= g_url 
json string= l_user 
json string= l_password 
+0

Мех. '\ {(. *?) \}' –

+0

Спасибо Lucas Trzesniewski –

ответ

0

По умолчанию .* жаден и выберите всю строку до последней закрывающей фигурной скобки. Чтобы избежать этого, необходимо определить шаблон, как:

Pattern p = Pattern.compile("\\{(.*?)\\}"); 

ИЛИ

Pattern p = Pattern.compile("\\{([^\\}]*)\\}") 
Смежные вопросы