Foro de elhacker.net

Programación => Java => Mensaje iniciado por: cyberserver en 23 Diciembre 2010, 23:08 pm



Título: Ayuda con Exprecion Regular Serie Numerica
Publicado por: cyberserver en 23 Diciembre 2010, 23:08 pm
Hola amigos, como siempre necesito su ayuda!!!

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

Citar
20,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
  1. import javax.swing.*;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4.  
  5.  
  6. public class Enumeracion {
  7.  
  8.    public static void main (String[] args) {
  9.     String Cadena;
  10.     ExpRegu Obj=new ExpRegu();
  11.     for(int x=0;x<20;x++){
  12.     Cadena=JOptionPane.showInputDialog("Cadena para Procesar");
  13.     if(Obj.Comparacion(Cadena)){
  14.     JOptionPane.showMessageDialog(null,"Si es Correcta la Cadena");
  15.     }else{
  16.     JOptionPane.showMessageDialog(null,"No es Correcta la Cadena");
  17.     }
  18.     }
  19.  
  20. }
  21.  
  22.  
  23. }
  24. class ExpRegu{
  25. public boolean Comparacion(String Cadena)throws java.util.regex.PatternSyntaxException{
  26. String ExprecionRegular="(^[0-9]*|^[0-9]*+[,])+([0-9]*+[,]|[,]+[0-9]*+[,])+([0-9]*$)";
  27.        Pattern InicialExprecion = Pattern.compile(ExprecionRegular);
  28.     Matcher Patron=InicialExprecion.matcher(Cadena);
  29.  
  30.    if(Patron.find()){
  31.     return true;
  32.    }else{
  33.     return false;
  34.    }
  35.    }
  36.  
  37. }
  38.  


en verdad les agradeceria infinitamente su ayuda...!


Título: Re: Ayuda con Exprecion Regular Serie Numerica
Publicado por: sapito169 en 27 Diciembre 2010, 20:36 pm
trata de partirlo con
  String[] result = serie.split(",");
y despues de compruebas que todos los pedasos de la cadena son numeros


Título: Re: Ayuda con Exprecion Regular Serie Numerica
Publicado por: raul338 en 27 Diciembre 2010, 21:16 pm
Código:
^(?:\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


Título: Re: Ayuda con Exprecion Regular Serie Numerica
Publicado por: cyberserver en 27 Diciembre 2010, 23:59 pm
aii caray mil gracias en verdad me hisiste un gran favor


Título: Re: Ayuda con Exprecion Regular Serie Numerica
Publicado por: cyberserver en 31 Diciembre 2010, 19:55 pm
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,

Citar
10,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.!