Expressões regulares em Java

279 2

“Um homem nasce e morre aprendendo!” – Concordo!Depois de tanto tempo fugindo deste assunto, eis que finalmente surgiu uma necessidade de estudar expressões regulares, para resolver alguns problemas da faculdade. Já havia tentado estudar expressões regulares em Python, PHP, mas a solução que eu precisava tinha de ser feita com Java. Não tive alternativas senão procurar informações sobre expressões regulares em Java, e agora venho compartilhar o que aprendi. Será uma série de artigos e este é apenas o começo.Para não perder os outros artigos da série, considere inscrever-se no Techmoz ou seguir-me no Twitter você também pode se inscrever para receber actualizações por email usando o formulário na lateral deste blog!O que são expressões regularesDe uma forma informal, diria que expressões regulares são formas de identificar caracteres ou cadeia de caracteres numa String. Podemos por exemplo verificar se a palavra Techmoz contém a letra “i”, ou então se Informática Moçambique contém a palavra Moçambique. Mais coisas podem ser feitas com expressões regulares, como por exemplo validar número de telefones, endereços de emails ou então os capítulos de uma Bíblia! Eu considero expressões regulares o recurso mais poderoso para a manipulação de Strings!Quase todas as linguagens modernas possuem suporte para expressões regulares, mas cada uma usa a sua própria implementação. Eu já usava algumas expressões simples para manipular textos aqui no Techmoz, com PHP, mas agora estou estudando expressões regulares em Java.Expressões regulares em JavaVou mostrar como funcionam e qual a importância de expressões regulares em java usando um exemplo prático: Imagina que você quer verificar se uma dada String contém uma sequência de 10 dígitos numéricos. Você poderia muito bem fazer isso sem recorrer a expressões regulares, bastando usar o seguinte método:

public boolean hasTenDigits(String s) {  int noDigitsInARow = 0;  for (int len = s.length(), i = 0; i < len; i++) {    char c = s.charAt(i);    if (Character.isDigit(c)) {      if (++noDigitsInARow == 10) {        return true;      }    } else {      noDigitsInARow = 0;    }  }  return false;}

Veja quantas linhas, ciclos , etc. teve de usar para encontrar a solução.Agora o mesmo exemplo, com expressões regulares, seria:

public boolean hasTenDigits(String s) {  return s.matches(".*[0-9]{10}.*");}

A interpretação nem é tão complicada assim para quem já conhece a sintaxe de expressões regulares em Java, Python, PHP, etc. Estamos a dizer que se a String s tiver uma sequência de caracteres entre 0 e 9 repetida 10 vezes, então retorna true, false caso contrário. Não interessa se a sequência estiver no início, no fim ou qualquer outro lugar da String.Bem, foi apenas uma introdução, e o restante virá brevemente. Considere inscrever-se no Techmoz para eu lhe enviar um email quando aparecer novo conteúdo aqui no portal.Para isso use o formulário na lateral deste blog. Pode também seguir-me no Twitter se usa esta rede de microblog

(Visited 28 times, 1 visits today)