Olá,
Pessoal gostaria de passar como parametro para o Pattern.compile() a seguinte expressão:
L(L+D)* -------> letra(letra+digito)*
sendo apenas sei detectar letras…
se alguem conhecer e poder me ajudar a construir eu agradeço!!!
obrigado!
Olá,
Pessoal gostaria de passar como parametro para o Pattern.compile() a seguinte expressão:
L(L+D)* -------> letra(letra+digito)*
sendo apenas sei detectar letras…
se alguem conhecer e poder me ajudar a construir eu agradeço!!!
obrigado!
Não funcionou cara!
se eu colocar uma palavra começando com letra ele passa.
olha meu codigo e me diga o que está errado
public class Testes {
public static void main(String[] args) {
String palavra= "1a";
String x [] = palavra.split("");
Pattern p = Pattern.compile("[a-zA-Z][A-Z0-9]*");
Matcher m = p.matcher(palavra);
while(m.find()){
System.out.println(palavra + " = ID");
}
}
}
Espera um pouco.
A sua expressão original não diz que você quer uma letra seguida de zero ou mais letras ou dígitos?
A melhor forma para você criar uma expressão regular é criar uma lista de strings que batem e strings que não batem com a expressão regular que você quer construir. Aí você testa a expressão contra essas duas listas.
Por exemplo, se bem entendi o que você disse (mas não o que você queria dizer - realmente não entendi), você queria que a expressão batesse com:
A
A9
mas não com
9
9A
ou coisas parecidas.
E a propósito, por que você usou split ("")? Isso cria uma lista de strings com 1 caracter cada, o que provavelmente não é o que você quer.
“abcde123”.split ("") retorna um array contendo as strings “a”, “b”, “c”, “d”, “e”, “1”, “2”, “3”
Desculpa pelo split
eu sei o que ele faz é porque estou testando aqui e esqci de retira-ló ao colar meu codigo aqui!
é realmente isso que eu quero!
Ex:
Correto
ab
a5b
ab5
Errado
9
9a
*a
-a
a-
Entendeu?
Gostaria que ele não imprimi-se a palavra quando errado!
Ponha o split correto (não com “”), e mostre uma string de entrada. Que eu saiba, o seu padrão está quase certo (você precisaria, na verdade, de “[a-zA-Z][a-zA-Z0-9]*”, mas é apenas uma sutileza), e o código está quase certo, exceto pelo split, que não pode ficar assim.
public class Testes {
public static void main(String[] args) {
String palavra= "a+";
// String x [] = palavra.split("");
Pattern p = Pattern.compile("[a-zA-Z][A-Z0-9]*");
Matcher m = p.matcher(palavra);
if(m.matches()){
System.out.println(palavra + " = ID");
}
}
}
Muito obrigado pela ajuda...
Se precisar para implementar algo futuro posso contar com sua ajuda?
abraço!