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
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ê :^)
nao é a forma eficaz, mas foi a unica que também encontrei pesquisando antes de vir ler sua resposta.