dúvida com regex

4 respostas
V

Olá Pessoal,

Tenho uma string dessa forma : CONV-ERP-00-001

To tentando fazer o metodo dessa forma: Pattern p = Pattern.compile("[A-Z] -[A-Z] -\d{1,2} - \d{3,4}");

Porém não está funcionando.

Alguem poderia me ajudar?

Obrigada.

4 Respostas

T
// CONV-ERP-00-001 
Pattern p = Pattern.compile("[A-Z]+-[A-Z]+-\\d{1,2}-\\d{3,4}");

Como não sei quantas letras e dígitos você quer para “CONV” e “ERP”, estou pondo apenas “+” (que quer dizer 1 ou mais repetições).

V

Oi !

Então ainda não funcionou.
To passando o código da funcao.

public boolean validate(String DOC){

String DocERPdigitado = (String) DOC;
   
   Pattern p = Pattern.compile("[A-Z]+-[A-Z]+-\\d{1,2}-\\d{3,4}");

   Matcher m = p.matcher(DocERPdigitado);

   boolean matchFound = m.matches();

   if(!matchFound){
     return false;
   } else{
        return true;
      }

}

Muito obrigada.

Em relação as letras, elas são apenas essas CONV-ERP.

correainfo

VeraApFigueiredo, tenta dessa forma aqui…

Espero ter ajudado.

import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * 
 * @author lucas.correa
 */
public class Regex {
	
	public static void main(String[] args){
		new Regex().validate("CONV-ERP-00-001");
	}
	
	public boolean validate(String DOC){
		// CONV-ERP-00-001   
		String DocERPdigitado = (String) DOC;
		Pattern p = Pattern.compile("[A-Z]{4}-[A-Z]{3}-[0-9]{2}-[0-9]{3}");

		Matcher m = p.matcher(DocERPdigitado);

		boolean matchFound = m.matches();

		if(!matchFound){
			System.out.println("Falso");
			return false;
		} else{
			System.out.println("Verdadeiro");
			return true;
		}
	} 
}
O
Só repetindo a resposta do thingol (leia os comentários):
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class T {
   public static boolean validate(String doc) {

      // Opção 1
      Pattern p = Pattern.compile("[A-Z]+-[A-Z]+-\\d{1,2}-\\d{3,4}");
      Matcher m = p.matcher(doc);
      return m.matches();

      // Opção 2
      // return Pattern.matches("[A-Z]+-[A-Z]+-\\d{1,2}-\\d{3,4}", doc);

      // Dependendo do que vc quer pode colocar simplesmente:
      // return doc.matches("[A-Z]+-[A-Z]+-\\d{1,2}-\\d{3,4}");

      // WARNING, WARNING, PÉROLA DETECTED
      // boolean matchFound = m.matches();
      //
      // if (!matchFound) {
      // return false;
      // } else {
      // return true;
      // }
   }

   public static void main(String[] args) {
      System.out.println(validate("CONV-ERP-00-001"));
   }
}
Alguém já pensou em compilar pérolas e POGs num livro?
Criado 23 de março de 2009
Ultima resposta 24 de mar. de 2009
Respostas 4
Participantes 4