Foros del Web » Programación para mayores de 30 ;) » Java »

Validar con expresiones regulares un campo real expresado con exponente

Estas en el tema de Validar con expresiones regulares un campo real expresado con exponente en el foro de Java en Foros del Web. Hola: lo que intento es validar con expresiones reguares un double, que se pueda introducir como: 1.02 o 1.2E-4 la primera opcion ya la tengo: ...
  #1 (permalink)  
Antiguo 08/05/2009, 15:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 30
Antigüedad: 15 años, 7 meses
Puntos: 0
Validar con expresiones regulares un campo real expresado con exponente

Hola:

lo que intento es validar con expresiones reguares un double,
que se pueda introducir como: 1.02 o 1.2E-4

la primera opcion ya la tengo:
validar un real:
"^(?:\\+|-)?\\d+\\.\\d*$"

pero necesito tambien que me diga si es un double expresado con exponente:

ejemplo: 0.1E-3

intente: ^(?:\\+|-)?\\d+\\.\\d*[E-], y alguas cosas mas
a ver si unia las dos partes pero no funciona asi,

la pregunta es alguien tiene alguna idea de como lo hago para unir las tres partes

reales:^(?:\\+|-)?\\d+\\.\\d*
exponente:[E-]
entero:^(?:\+|-)?\d+$

como uno estos tres?
muchas gracias

Última edición por marvi; 08/05/2009 a las 15:34
  #2 (permalink)  
Antiguo 11/05/2009, 04:34
 
Fecha de Ingreso: abril-2009
Mensajes: 82
Antigüedad: 15 años
Puntos: 2
Respuesta: Validar con expresiones regulares un campo real expresado con exponente

Buenas:

Lo primero perdona si mis nociones de expresiones regulares están mal pues hace tiempo que no trato con ellas.

Prueba a ver esta solución: ^(?:\\+|-)?\\d+(\\.\\d+(E-\\d+)?)?$

Explicándola un poco...

Entero: ^(?:\\+|-)?\\d+(\\.\\d+(E-\\d+)?)?$ el resto será 0 veces si es entero
Real: ^(?:\\+|-)?\\d+(\\.\\d+(E-\\d+)?)?$ el exponente será 0 veces, pero el punto y los número (al menos uno) si que tienen que estar
Exponente: ^(?:\\+|-)?\\d+(\\.\\d+(E-\\d+)?)?$ el exponente aparece solo en caso de ser real por lo que necesitarías un 1.0 antes de poner la E-3.

Espero haberme explicado y que la ER sea correcta.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:48.