Fonctionnement du motif
| Élément | Signification |
|---|---|
(0|[1-9]\d*) | Majeur, mineur et correctif (groupes 1 à 3) : nombres sans zéro en tête |
\. | Points entre ces nombres |
(?:-([0-9A-Za-z.-]+))? | Préversion facultative après un tiret (groupe 4) : beta.1, rc.2 |
(?:\+([0-9A-Za-z.-]+))? | Métadonnées de build facultatives après un plus (groupe 5) |
Exemples de 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;
Remarques et limites
Une version pratique des règles de semver 2.0 ; retirez d’abord un v initial si vos tags en utilisent un. Comparez les versions nombre par nombre, groupe par groupe, et non comme des chaînes de caractères.
Testeur d’expressions régulières
Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.