Reg ex de número decimal

Soltrac

Si, hace años q dejé la carrera y soy bastante torpe para dar con la reg ex del número decimal

Alguien la tiene a mano?

Lo q necesito son X números una coma q aparezca o no y X números.

Recuerdo q reg ex = Expresión regular.

Gracias :$

Fr4nk0

DIGITO: ('0'..'9');

NUMERO : ((DIGITO)+ '.') => (DIGITO)+ '.' (DIGITO)+
| ((DIGITO)+) => (DIGITO)+

Esa es la expresion regular, para un numero con y sin decimales. Esta en ANTLR (plugin Java para analisis lexico y sintactico), si la quieres en otro lenguaje (PERL por ejemplo), pues ya modifica tu lo que veas.

Bye

Soltrac

Gracias, ya lo paso yo a una expresión regular de toda la vida xDDD.

kas

Y en la carrera te enseñaron REGEX? loled.

r2d2rigo

kas, tu no has tenido que programar nunca con Flex? Yo lo maldigo D:

JuAn4k4

#5 Pero si es una maravilla, salvo el que tengas que poner todo en la misma linea porque si le pones varios "saltos" peta.

digito = ( 0+1+2+3+4+5+6+7+8+9 )

(digito)* · ( '.' | digito ) · (digito)*

0 o mas digitos, concatenados con un '.' o el ultimo digito(oblg si no hay punto) concatenado con 0 o mas digitos.

Esto admitiria " .024" como valido , si no lo quieres: ( E= epsilon )

(digito)+ · ( '.' | E ) · (digito)*

No se si estan bien las he hecho ahora mientras contestaba.
· concatenacion, * la estrella esa de nosequien, + ( 1o mas ) | ( el "ó" )

Soltrac

#4 En la carrera tuve q hacer "traductores" con flex y toda esa mierda. Es lo mas aburrido q he visto en mi vida, de ahi q mi mente optara por ignorar todo lo aprendido y cuando me hacen falta las expresiones regulares pues me pongo malo.

Aun así, fijate si lo tengo olvidado q aun no he transformado la expresión regular q me dieron a regex xDDDD.

litri

#6

Te complicas mucho la vida.

Esta es la ER Soltrac, las ER que yo recuerde se las come Regex.

General:

[0-9]+(,)?[0-9]*

Limitando los numeros de la coma:

[0-9]+(,)?[0-9]{0,5}

Con esta tienes que los numeros detras de la coma van de 0 a 5 apariciones, es decir, de 0 a 5 decimales.

JuAn4k4

#8 Pero si es la misma er con distinta notacion.

Poisonous

En todo caso ambas er representan el mismo lenguaje o ,si lo prefieres ,son equivalentes. (por rizar el rizo un rato xd)

JuAn4k4

No, en realidad es lo mismo expresado con una notacion distinta:

(digito)+ · ( '.' | E ) · (digito)*
[0-9]+(,)?[0-9]*

con las diferencias en notacion de:
digito == [0-9]
'.' | Epsilon == (,)?

kas

Me maravillais todos juntos.

No, nunca he ¿programado? en Flex.

LOc0

#1 Si es la de un número decimal:

Notación "formal" de teoría de autómatas: <digito> · <digito>* · [ (<coma> · <digito> · <digito>* ) + E ]

Notación de "andar por casa": [0-9]+(,[0-9]+)?

Las otra que he visto por aquí te admitiría 123,

Salu2 ;)

SeiYa

A ver

[0-9]+(.[0-9]+)?

Así la haría yo XD recuerdo que los decimales con coma es solo aquí, por eso puse el .

Usuarios habituales

  • SeiYa
  • LOc0
  • kas
  • JuAn4k4
  • Poisonous
  • litri
  • Soltrac