Obter "matches" de uma expressão regular

Oi pessoal,

Estou com dificuldades de obter os trechos de String que batem com minha expressão regular.

No meu teste abaixo, eu tenho a string “{lol}” e quero obter “lol” .

Pattern datePattern = Pattern.compile("[{](.+)[}]");
		Matcher matches = datePattern.matcher("{lol}");
		System.out.println(matches.groupCount());
		System.out.println(matches.group(0));
		System.exit(0);

mas a unica coisa que consigo é uma enorme exception

Exception in thread "main" java.lang.IllegalStateException: No match found
	at java.util.regex.Matcher.group(Matcher.java:468)
	at br.mikhas.tests.RegularExpressionTest.main(RegularExpressionTest.java:11)

Não creio que a expressão esteja errada pois testei ela com Javascript.

Grato

você quer capturar que parte de uma String com essa expressão?

Leia o comentário.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class TesteLol {
    public static void main(String[] args) {
        Pattern datePattern = Pattern.compile("[{](.+)[}]");  
        Matcher matches = datePattern.matcher("{lol}");  
        // Você PRECISA chamar "find" ou "matches" para poder achar os grupos. 
        if (matches.find()) {
            System.out.println(matches.groupCount());  
            System.out.println(matches.group(0));  
        }
    }
}

Valew entanglement.
Funcionou aqui :wink: