Expressões regulares para trabalhar com números
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*$
Encontra números inteiros e de ponto flutuante (float, double), incluindo negativos
^[-+]?\d*.?\d*$
Encontra qualquer número real
^[-+]?\d+(.\d+)?$
Encontra representações de dinheiro em dólar
^\$(\d{1,3}(,\d{3})*|(\d+))(.\d{2})?$
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})?)$
Encontra inteiros positivos
^\d+$
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=®ex=^-%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=®ex=^%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=®ex=^%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=®ex=^%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=®ex=^%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
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!