Continuando a série sobre expressões regulares iniciada aqui, reuni algumas expressões regulares úteis para trabalhar com números.

Encontra números inteiros, incluindo negativos

^[-+]?\d*$

Testar

Encontra números inteiros e de ponto flutuante (float, double), incluindo negativos

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

Testar

Encontra qualquer número real

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

Testar

Encontra representações de dinheiro em dólar

^\$(\d{1,3}(,\d{3})*|(\d+))(.\d{2})?$

Testar

Encontra representações de dinheiro em reais

^R\$ ?([1-9]{1}[\d]{0,2}(.[\d]{3})*(,[\d]{0,2})?|[1-9]{1}[\d]{0,}(,[\d]{0,2})?|0(,[\d]{0,2})?|(,[\d]{1,2})?)$

Testar

Encontra inteiros positivos

^\d+$

Testar

Encontra porcentagens, positivas ou negativas, com 2 casas decimais

^-?[0-9]{0,2}(.[0-9]{1,2})?$|^-?(100)(.[0]{1,2})?$
[Testar](http://regexpal.com/?flags=&regex=^-%3F[0-9]{0%2C2}%28.[0-9]{1%2C2}%29%3F%24 ^-%3F%28100%29%28.[0]{1%2C2}%29%3F%24&input=67.43)

Encontra inteiros entre 0 ou 000 até 255

^(\[01]?[0-9]?[0-9]|2[0-4\]\[0-9\]|25[0-5])$
[Testar](http://regexpal.com/?flags=&regex=^%28[01]%3F[0-9]%3F[0-9] 2[0-4][0-9] 25[0-5]%29%24&input=255)

Encontra inteiros entre 0 ou 000 até 127

^(0?\[0-9]?[0-9]|1[0-1\]\[0-9\]|12[0-7])$
[Testar](http://regexpal.com/?flags=&regex=^%280%3F[0-9]%3F[0-9] 1[0-1][0-9] 12[0-7]%29%24&input=50)

Encontra inteiros entre 0 e 999

^(\[0-9]|[1-9\]\[0-9\]|\[1-9\]\[0-9\][0-9])$
[Testar](http://regexpal.com/?flags=&regex=^%28[0-9] [1-9][0-9] [1-9][0-9][0-9]%29%24&input=666)

Encontra inteiros entre 1 e 999

^(\[1-9]|[1-9\]\[0-9\]|\[1-9\]\[0-9\][0-9])$
[Testar](http://regexpal.com/?flags=&regex=^%28[1-9] [1-9][0-9] [1-9][0-9][0-9]%29%24&input=100)

Encontra números de cartão de crédito de 13 até 16 dígitos

b(?:d[ -]*?){13,16}b

Testar

Não deixe de entrar em contato caso tenha alguma dúvida ou sugestões para os próximos posts.

Abraço e até a próxima!