sexta-feira, 7 de dezembro de 2012

Como fazer para utilizar o operador OR em uma expressão RegEx

As expressões regex são muito potentes e permitem realizar diversas operações. Uma das que podemos realizar é o operador lógico OR.


Vamos ver um exemplo.

Como vimos o processo consiste basicamente de 3 passos:
  • definimos o padrão
  • criamos o matcher
  • realizamos um loop com find().
  

A saída deste programa é:


Imagine que temos um texto e queremos localizar nele os possíveis telefones telefones. Vamos considerar que um telefone pode ter o formato 9999-9999 ou 999-9999.

Note como escrevi o padrão. Nele coloquei os dois padrões em uma expressão unida por um OU, assim se achar um dos dois, o resultado será representado. Vamos ver como ficou:

Funcionou.

Você que está lendo e conhece um pouco de expressões regulares já vai falar... mas esta não é a melhor forma de fazer. Ok! Concordo. Podemos facilmente alterar a expressão do código acima para

String regex = "\\d?\\d\\d\\d-\\d\\d\\d\\d";

O padrão \d? indica ao processador regex que ele deve procurar a ocorrência de um número ou nenhum, gerando o mesmo resultado da expressão grande apresentada no código fonte. Mas vale o exemplo didático, não é?

Dê uma olhada no resumo das expressões regulares em http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

Nenhum comentário:

Postar um comentário