Como o padrão funciona
| Parte | Significado |
|---|---|
-? | Sinal de menos opcional |
\d{1,3}(?:,\d{3})+ | Números com separadores de milhar, como 1,200 |
|\d+ | Ou apenas dígitos |
(?:\.\d+)? | Parte decimal opcional |
Exemplos de código
JavaScript
const matches = text.match(/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/g) ?? [];Python
import re
matches = re.findall(r'-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?', text)PHP
preg_match_all('/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/', $text, $m);
$matches = $m[0];
Observações e limitações
Remova as vírgulas antes de converter uma correspondência em número. Para números escritos como 1.200,50 (alemão e muitos outros idiomas), troque a vírgula e o ponto no padrão.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.