Mẫu hoạt động như thế nào
| Phần | Ý nghĩa |
|---|---|
(0|[1-9]\d*) | Major, minor và patch (nhóm 1–3): các số không có số 0 đứng đầu |
\. | Dấu chấm ngăn cách giữa chúng |
(?:-([0-9A-Za-z.-]+))? | Phần pre-release tùy chọn đứng sau dấu gạch ngang (nhóm 4): beta.1, rc.2 |
(?:\+([0-9A-Za-z.-]+))? | Phần build metadata tùy chọn đứng sau dấu cộng (nhóm 5) |
Ví dụ code
JavaScript
const re = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?', value))PHP
preg_match('/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+([0-9A-Za-z.-]+))?$/', $value) === 1;
Ghi chú và giới hạn
Đây là phiên bản thực tế của quy tắc semver 2.0. Nếu thẻ (tag) của bạn có tiền tố v thì hãy bỏ v trước khi kiểm tra. Hãy so sánh các phiên bản theo số, từng nhóm một, thay vì so sánh dạng chuỗi.
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.