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")
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...!
trata de partirlo con
String[] result = serie.split(",");
y despues de compruebas que todos los pedasos de la cadena son numeros
^(?:\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
aii caray mil gracias en verdad me hisiste un gran favor
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.!