Como pegar o valor apartir de uma regex

Quero obter uma certa parte de uma string a partir de uma regex , por exemplo:

String x = “Meu email é leandro@hotmail.com

quero pegar somente o email e salvar em outra variavel

String  regex = "([A-Za-z0-9_])+@([A-Za-z]+\\.)+[A-Za-z]{2,4}",
		entrada = "Meu email é leandro@hotmail.com";

		Matcher matcher = Pattern.compile(regex).matcher(entrada);
		if (matcher.find()) {
			System.out.println("Email encontrado: " + matcher.group());
		}

Saída:
Email encontrado: leandro@hotmail.com.br


Explicando:
([A-Za-z0-9_])+ quer dizer que antes do @ poderá conter tanto letras maiúsculas/minúsculas, números e underline.

([A-Za-z]+\\.)+ quer dizer que após o @ poderá conter letras maiúsculas/minúsculas e deverá terminar em um ponto ( . ), e seguindo esse padrão, poderá ocorrer inúmeras vezes.

[A-Za-z]{2,4} que dizer que no final desse endereço deve conter ao menos 2~4 letras (geralmente um com ou br )

Eu nunca fiz algo do tipo e tudo que eu fiz aqui eu pesquisei antes de responder, não sei se é a forma mais eficaz de se fazer, mas pode ser útil para você :^)

1 curtida

nao é a forma eficaz, mas foi a unica que também encontrei pesquisando antes de vir ler sua resposta.