Как работает шаблон
| Часть | Значение |
|---|---|
-? | Необязательный знак минус |
\d{1,3}(?:,\d{3})+ | Числа с разделителями тысяч, например 1,200 |
|\d+ | Или просто цифры |
(?:\.\d+)? | Необязательная дробная часть |
Примеры кода
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];
Примечания и ограничения
Удалите запятые перед преобразованием совпадения в число. Для чисел, записанных как 1.200,50 (немецкая и многие другие локали), поменяйте местами запятую и точку в шаблоне.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.