So funktioniert das Muster
| Teil | Bedeutung |
|---|---|
(0|[1-9]\d*) | Major, Minor und Patch (Gruppen 1–3): Zahlen ohne führende Nullen |
\. | Punkte dazwischen |
(?:-([0-9A-Za-z.-]+))? | Optionales Pre-Release nach einem Bindestrich (Gruppe 4): beta.1, rc.2 |
(?:\+([0-9A-Za-z.-]+))? | Optionale Build-Metadaten nach einem Pluszeichen (Gruppe 5) |
Code-Beispiele
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;
Hinweise und Einschränkungen
Eine praktische Version der semver-2.0-Regeln. Entferne zuerst ein führendes v, falls deine Tags eins verwenden. Vergleiche Versionen numerisch, Gruppe für Gruppe, nicht als Strings.
Regex-Tester
Gib ein Muster ein und sieh zu, wie Übereinstimmungen in deinem Testtext in Echtzeit hervorgehoben werden.