¿Cómo incluyo números decimales negativos en esta expresión regular?

¿Cómo comparo los números negativos también con esta expresión regular? Esta expresión regular funciona bien con valores positivos, pero también quiero que permita valores negativos, por ejemplo, -10, -125.5, etc.

^[0-9]\d*(\.\d+)?$ 

Gracias

Debería agregar un guión opcional al principio agregando -? ( ? es un cuantificador que significa una o cero ocurrencias ):

 ^-?[0-9]\d*(\.\d+)?$ 

Lo verifiqué en Rubular con estos valores:

 10.00 -10.00 

y ambos coincidieron como se esperaba.

Algunos ejemplos de expresiones regulares:

Enteros positivos :

 ^\d+$ 

Enteros negativos :

 ^-\d+$ 

Entero :

 ^-?\d+$ 

Número positivo :

 ^\d*\.?\d+$ 

Número Negativo :

 ^-\d*\.?\d+$ 

Número positivo o número negativo :

 ^-?\d*\.{0,1}\d+$ 

Número de teléfono :

 ^\+?[\d\s]{3,}$ 

Teléfono con código :

 ^\+?[\d\s]+\(?[\d\s]{10,}$ 

Año 1900-2099 :

 ^(19|20)[\d]{2,2}$ 

Fecha (dd mm aaaa, d / m / aaaa, etc.):

 ^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$ 

IP v4 :

 ^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$ 

No sé por qué necesitas eso primero [0-9] .

Tratar:

 ^-?\d*(.\d+)?$ 

Actualizar

Si quiere estar seguro de que tendrá un dígito en el lugar de las unidades, use

 ^-?\d+(.\d+)?$ 

Esto permitirá un carácter - o + solo cuando esté seguido por un número:

  ^([+-](?=\.?\d))?(\d+)?(\.\d+)?$ 

ACTUALIZADO (13/08/2014): Este es el mejor código para números positivos y negativos =)

 (^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1} 

Intenté con estos números y funciona bien:

 -1234454.3435 -98.99 -12.9 -12.34 -10.001 -3 -0.001 -000 -0.00 0 0.00 00000001.1 0.01 1201.0000001 1234454.3435 7638.98701 

Esto permitirá números enteros positivos y negativos

ValidationExpression = “^ -? [0-9] \ d * (\ d +)? $”

Tengo algunos experimentos sobre regex en django url, que requieren números negativos a positivos

 ^(?P(\-\d+|\d+))$ 

Centrémonos en esta parte (\-\d+|\d+) e ignorando otras, este punto y coma | significa O en expresiones regulares, entonces el valor negativo coincidirá con esta parte \-\d+ , y el valor positivo en este \d+

Solo agrega un token de 0 o 1:

 ^-?[0-9]\d*(.\d+)?$ 

Solo para números negativos, esto es perfecto.

 ^-\d*\.?\d+$ 

Expresión regular para el número, punto decimal opcional, negativo opcional:

 ^-?(\d*\.)?\d+$; 

funciona para entero negativo, decimal, negativo con decimal

Esto funcionó para mí, permitiendo números negativos y positivos :

  \-*\d+ 

Si usa C #:

 Regex.Match(someString, @"\-*\d+").Value; 
 ^[+-]?\d{1,18}(\.\d{1,2})?$ 

acepta valores decimales positivos o negativos