No trecho abaixo eu verifico se a minhaString contém letras e números. Agora preciso de montar uma expressão regular em que eu verifique se minhaString contem 4 LETRAS MAÍUSCULAS seguidas por 7 números entre zero e nove. Vc pode me ajudar?
Muito obrigado,
Marques
if (!Pattern.matches("[a-z0-9]+", minhaString) {
System.out.println("funciona");
}
Akumaldo,
É bem por aí. Suponha por exemplo que vc queira validar uma String que contenha um código de cor hexadecimal(#F456FD, por exemplo). Perceba que esse código tem o seguinte padrão:
-Tem 7 caracteres
-O primeiro caractere é sempre o “#”
-Os demais caracteres são algarismos hexadecimais
Como Verificar isso de forma fácil? Usando uma expressão regular que denote este padrão.
Em Java (Consulte o link que eu postei pro OP), uma regra suficiente para achar um código de cor hexadecimal dentro de uma String seria algo como
#[0-9A-F]{6}
Pra usar isso no Java, vc tem que passar a expressão regular(regex) como uma String. Nunca se esqueça disso!!! No caso então, na situação hipotética citada, fariámos assim em Java:
Agora, só pra exemplificar uma coisinha, imageine que queiramos aceitar também uma String que seja um código de cor hexa, mas queremos ignorar eventuaisespaços em branco, tabs, quebra de linha, etc, que possam vir antes e/ou depois do nosso código (Algo como dar um trim na String. A regex seria algo assim:
\s*#[0-9A-Fa-f]{6}\s*
Em java vicaria assim:
Mas por que em Java ficou
\s*#[0-9A-Fa-f]{6}\s*
ao invéz de
\s*#[0-9A-Fa-f]{6}\s*
???
Porque o regex tem que ser uma String, e não existe o caracter de escape “\s”, então temos que usar “\” pra termo apenas um “” (Como se quiséssemos cria uma String com uma data: “13\05\2000”)
Espero ter ajudado.
Qq coisa, postem mais!
[quote=Mantu]Akumaldo,
É bem por aí. Suponha por exemplo que vc queira validar uma String que contenha um código de cor hexadecimal(#F456FD, por exemplo). Perceba que esse código tem o seguinte padrão:
-Tem 7 caracteres
-O primeiro caractere é sempre o “#”
-Os demais caracteres são algarismos hexadecimais
Como Verificar isso de forma fácil? Usando uma expressão regular que denote este padrão.
Em Java (Consulte o link que eu postei pro OP), uma regra suficiente para achar um código de cor hexadecimal dentro de uma String seria algo como
#[0-9A-F]{6}
Pra usar isso no Java, vc tem que passar a expressão regular(regex) como uma String. Nunca se esqueça disso!!! No caso então, na situação hipotética citada, fariámos assim em Java:
Agora, só pra exemplificar uma coisinha, imageine que queiramos aceitar também uma String que seja um código de cor hexa, mas queremos ignorar eventuaisespaços em branco, tabs, quebra de linha, etc, que possam vir antes e/ou depois do nosso código (Algo como dar um trim na String. A regex seria algo assim:
\s*#[0-9A-Fa-f]{6}\s*
Em java vicaria assim:
Mas por que em Java ficou
\s*#[0-9A-Fa-f]{6}\s*
ao invéz de
\s*#[0-9A-Fa-f]{6}\s*
???
Porque o regex tem que ser uma String, e não existe o caracter de escape “\s”, então temos que usar “\” pra termo apenas um “” (Como se quiséssemos cria uma String com uma data: “13\05\2000”)
Espero ter ajudado.
Qq coisa, postem mais![/quote]
Grande explicação!
acho que agora entendi bem…com isso podemos validar então um CPF???ou placa de carros…ou uma data de aniversário…um campo que só aceita nomes…é isso?