Estoy tratando de hacer coincidir los números decimales de punto flotante con una expresión regular. Puede haber o no un número antes del decimal, y el decimal puede o no estar presente, y si está presente puede o no tener dígitos después de él. (Para esta aplicación, no se permite un "+12" o un "E123" final). He escrito esta expresión regular:¿Cómo puedo verificar si al menos una de las dos subexpresiones en una expresión regular coincide?
/^([\d]*)(\.([\d]*))?$/
que coincide correctamente el siguiente:
1
1.
1.23
.23
Sin embargo, esto también coincide con una cadena vacía o una cadena de sólo un punto decimal, que no quiero.
Actualmente estoy comprobando después de ejecutar la expresión regular que $ 1 o $ 3 tiene una longitud mayor que 0. De lo contrario, no es válido. ¿Hay alguna manera de que pueda hacer esto directamente en la expresión regular?
realidad estoy haciendo en Java, pero lo estoy publicando aquí como si fuera Perl porque el motor de expresiones regulares de Java es una afrenta a la decencia humana. – Kip