Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Expressão regular em Java ME

From Wiki
Jump to: navigation, search
Article Metadata

Artigo
Tradução:
Originado de Regex in Java ME
Última alteração feita por hamishwillee em 13 Aug 2013

Este artigo visa demonstrar o uso das expressões regulares em diferentes entradas de texto fornecidas pelos usuários. Você pode utilizá-las para, por exemplo, bloquear caracteres de entrada, tais como !@#$%¨&*( ou mesmo para validar entradas de dados como um telefone, um nome, etc.

Contents

O que são Expressões Regulares?

Expressões regulares é um método formal para se especificar um padrões de texto. Facilita as comparações e filtragem de textos a fim de achar uma dada palavra, ou parte dela em um texto.

O que preciso para fazer isso em Java ME?

Em Java ME é necessário o uso de um pacote de terceiros como o 'me.regexp.*' . Ele pode ser baixado do projeto Jakarta, através deste link.

Algumas convenções da documentação

 Caracteres
   unicodeChar          Coincide com qualquer caractere Unicode idênticos
   \                    Usado para citar um meta caractere (como '*')
   \\                   Corresponde a um único caractere '\'
   \0nnn                Corresponde a um caractere octal
   \xhh                 Corresponde a um dado de 8-bits de caracteres hexadecimais
   \\uhhhh              Corresponde a um dado de 16-bits de caracteres hexadecimais
   \t                   Corresponde a um caractere de tabulação ASCII 
   \n                   Corresponde a uma nova linha ASCII
   \r                   Corresponde a um caractere de retorno ASCII 
   \f                   Corresponde a um caractere de feed  ASCII
 Classes de caracteres
   [abc]                Classe de caracteres simples
   [a-zA-Z]             Classe de caracteres com intervalos
   [^abc]               Classe de caracteres negada

NOTA: Escalas incompletas serão interpretados como "começa do zero" ou "termina com o último caractere". Ou seja, [-a] é o mesmo que [\\u0000-a], e [a-] é o mesmo que [a-\\uFFFF], [-] significa "todos os caracteres".

 Classes de caracteres padrão POSIX
   [:alnum:]           Caracteres Alfanuméricos.
   [:alpha:]           Caracteres Alfabéticos
   [:blank:]           Caracteres de espaço e tabulação.
   [:cntrl:]           Caracteres de Controle.
   [:digit:]           Caracteres Numéricos.
   [:graph:]           Caracteres que podem ser impressos e são também visíveis.
                       (Um espaço é uma impressão, mas não visível, enquanto um
                       'a' é ao mesmo tempo.)
   [:lower:]           Caracteres minúsculos do alfabeto.
   [:print:]           Caracteres imprimíveis (caracteres que não são
                       caracteres de controle.)
   [:punct:]           Os caracteres de pontuação (caracteres que não são dígitos, 
                       caracteres de controle, ou caracteres de espaço).
   [:space:]           Caracteres de espaço (tais como espaço, tabulação e formfeed)
   [:upper:]           Caracteres maiúsculos do alfabeto.
   [:xdigit:]          Caracteres que são dígitos Hexadecimais.
POSIX não-padrão de estilo da Classes de caracteres
   [:javastart:]        Início de um identificador de Java
   [:javapart:]         Parte de um identificador de Java
 Classes pré-definidas
   .         Coincide com qualquer caractere diferente de nova linha
   \w        Corresponde a uma palavra "caractere" (alfanuméricos e "_")
   \W        Corresponde a um caractere não-palavra
   \s        Coincide com um caractere branco
   \S        Coincide com um caractere não-branco
   \d        Coincide com um caractere de dígito
   \D        Coincide com um caractere de não dígito
 Casamentos nos limites das palavras ou linhas
   ^         Corresponde apenas ao início de uma linha
   $         Corresponde apenas ao final de uma linha
   \b        Corresponde apenas a início de palavra (em geral palavra é definido como [a-zA-Z0-9_])
   \B        Corresponde ao inverso de \b
 Casamentos do tipo 'o maior possível'
   A*        Corresponde A 0 ou mais vezes (greedy)
   A+        Corresponde A 1 ou mais vezes(greedy)
   A?        Corresponde A 1 ou 0 vezes (greedy)
   A{n}      Corresponde A n vezes (greedy)
   A{n,}     Corresponde A pelo menos n vezes (greedy)
   A{n,m}    Corresponde A, pelo menos, n vezes mas não mais do que m vezes (greedy)
 Casamentos do tipo 'o menor possível'
   A*?       Corresponde A 0 ou mais vezes (reluctant)
   A+?       Corresponde A 1 ou mais vezes (reluctant)
   A??       Corresopnde A 0 ou mais vezes (reluctant)
 Operadores lógicos
   AB        Corresponde A seguido de B
   A|B       Corresponde A ou B
   (A)       Usado para corresponder subexpressões
  (?:A)      Grupo de captura que pode ser salvo para referência posterior
 Referências anteriores:
   \1    Referência anterior para a 1º expressão de parêntese
   \2    Referência anterior para a 2º expressão de parêntese
   \3    Referência anterior para a 3º expressão de parêntese
   \4    Referência anterior para a 4º expressão de parêntese
   \5    Referência anterior para a 5º expressão de parêntese
   \6    Referência anterior para a 6º expressão de parêntese
   \7    Referência anterior para a 7º expressão de parêntese
   \8    Referência anterior para a 8º expressão de parêntese
   \9    Referência anterior para a 9º expressão de parêntese

Código fonte de um exemplo em prática

 /* Autor: Maicon Herverton, maiconherverton@yahoo.com.br, Brasil */
 
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import me.regexp.*;
public class Regex extends MIDlet {
 
public Regex() {
}
 
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
 
protected void pauseApp() {
}
 
protected void startApp() throws MIDletStateChangeException {
String texto = "abcdef232"; //Aqui fica o texto que você deseja verificar
RE padrao = RE("abc(\\w*)"); //Nesse caso estamos criando o padrão a ser validado o texto.
if (padrao.matcher(texto)) {
System.out.println("O texto: " + texto + " está no padrão!"); //Caso o texto esteja dentro do padrão
} else {
System.out.println("O texto: " + texto + " não está no padrão!"); //Caso o texto não esteja dentro do padrão
}
}
}
This page was last modified on 13 August 2013, at 10:39.
189 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×