Ayuda con Exprecion Regular Serie Numerica

Iniciado por cyberserver, 23 Diciembre 2010, 23:08 PM

0 Miembros y 1 Visitante están viendo este tema.

cyberserver

Hola amigos, como siempre necesito su ayuda!!!

Ya me queme la cabeza y no puedo encontrar la Exprecion Regular para una serie

Citar20,30,56,78,98

Tiene que cumplir con las siguentes Caracteristicas

  • Pueden ser [0-9]*
  • No puede escribirse un solo numero, tiene que ser una serie
  • Puenden ser numeros infinitos, no tiene limite
  • Tiene que ir separados por una Coma
  • El numero final NO puede terminar con coma ni con cualquier otro signo terminal

:huh: :huh: :huh: :rolleyes: :rolleyes: Parece Sencillo pero no pude hacerlo, ya tengo dias pensandole aunque paresca tonto pero no logro completar la Exprecion Regular.

Aqui el codigo!!! ("La exprecion Regular esta mal")
Código (java) [Seleccionar]

import javax.swing.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Enumeracion {

   public static void main (String[] args) {
    String Cadena;
    ExpRegu Obj=new ExpRegu();
    for(int x=0;x<20;x++){
    Cadena=JOptionPane.showInputDialog("Cadena para Procesar");
    if(Obj.Comparacion(Cadena)){
    JOptionPane.showMessageDialog(null,"Si es Correcta la Cadena");
    }else{
    JOptionPane.showMessageDialog(null,"No es Correcta la Cadena");
    }
    }
   
}
   
   
}
class ExpRegu{
public boolean Comparacion(String Cadena)throws java.util.regex.PatternSyntaxException{
String ExprecionRegular="(^[0-9]*|^[0-9]*+[,])+([0-9]*+[,]|[,]+[0-9]*+[,])+([0-9]*$)";
       Pattern InicialExprecion = Pattern.compile(ExprecionRegular);
    Matcher Patron=InicialExprecion.matcher(Cadena);
   
   if(Patron.find()){
    return true;
   }else{
    return false;
   }
   }

}



en verdad les agradeceria infinitamente su ayuda...!






sapito169

trata de partirlo con
  String[] result = serie.split(",");
y despues de compruebas que todos los pedasos de la cadena son numeros

raul338

^(?:\d+\,)+\d+$

:P

Descripcion

^Inicio de string
(?:\d+\,)+Serie, (?: ) es para no capturarlo y que se repita, adentro tiene que haber uno o mas numeros (\d+) seguido de una coma (\,)
\d+Tiene que terminar con un numero
$Fin del string

Se que practicamente te lo di en bandeja, pero tienes que aprender por algo, y las regexp (expresiones regulares) no son muy faciles a la primera :P

cyberserver

#3
aii caray mil gracias en verdad me hisiste un gran favor






cyberserver

Hola de nuevo.!  ;D ;D ;D

Oie creo que tambien se puede con esta exprecion
Citar^(\d+\,)+\d+$

Solo le quite lo de ?:



Oie perdon que vuleva a preguntar pero por mas que le intento no me salen las expreciones, ayer estuve asta las 2 de la mañana queriendo hacer otra exprecion y no puede!!  :(

Lo que quiero que haga es que Valide solo los numeros de Toda la serie,

Citar10,20,40,70,10,80

Como puedo hacerle,
Pienso que es basandome de la exprecion
Citar^(\d+\,)+\d+$

Pero en el espacio donde se comprueba la coma (\,) podria colocar una exprecion que omitiera o brincara la coma, para al momento de Agruparla en programacion
Comprovador.group(1) no apareciera.

Muchas gracias por su ayuda.!