Pattern hoạt động như thế nào
| Phần | Ý nghĩa |
|---|---|
-? | Dấu trừ tùy chọn |
\d{1,3}(?:,\d{3})+ | Số có dấu phân cách hàng nghìn, như 1,200 |
|\d+ | Hoặc các chữ số thông thường |
(?:\.\d+)? | Phần thập phân tùy chọn |
Ví dụ code
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];
Ghi chú và giới hạn
Hãy bỏ dấu phẩy trước khi chuyển kết quả khớp thành số. Với số viết dạng 1.200,50 (kiểu Đức và nhiều định dạng vùng khác), hãy đổi chỗ dấu phẩy và dấu chấm trong pattern.
Kiểm tra Regex
Nhập mẫu và xem các kết quả khớp được tô sáng ngay trong văn bản thử nghiệm.