Expressions régulières·un numéro de version sémantique

un numéro de version sémantique

Correspond à un numéro de version sémantique. Il est ancré aux deux bouts : la chaîne entière doit correspondre. Il n’y a pas de groupe capturant.

Motif
/^\d+\.\d+\.\d+(?:-[0-9a-z.-]+)?(?:\+[0-9a-z.-]+)?$/i
Portée
la chaîne entière
Groupes capturants
0
Options
i · casse ignorée
Ce qu’il capture dans le premier exemple
1.0.0

Essayez

Tapez un texte : les parties capturées sont surlignées. Tout se passe dans votre navigateur, rien n’est envoyé.

1.0.0

1 correspondance

Exemples qui correspondent

  • 1.0.0
  • 2.1.3-beta.1
  • 1.0.0+build5

Exemples qui ne correspondent pas

  • 1.0
  • v1.0.0

Autres expressions du groupe

Comment lire

  • Avec ^ et $, la chaîne entière doit correspondre ; sans eux, le motif peut se trouver n’importe où. Ancrez toujours ce qui sert à valider.
  • Les parenthèses ( ) capturent ce qu’elles entourent. Pour seulement grouper, écrivez (?: ) afin que la numérotation ne se décale pas.
  • Chaque expression ici est confrontée à ses exemples. Cela dit, « ressemble à un e-mail » et « est une vraie boîte » sont deux choses.
  • Les répétitions ouvertes imbriquées comme (a+)+ peuvent exploser sur certaines entrées. Repérez cette forme avant de coller l’expression d’autrui.

Questions fréquentes

Q. Quelle est la regex pour un numéro de version sémantique ?

^\d+\.\d+\.\d+(?:-[0-9a-z.-]+)?(?:\+[0-9a-z.-]+)?$, avec l’option i.

Q. Quelles chaînes correspondent ?

Un texte comme 1.0.0 correspond ; un texte comme 1.0 non.

Q. La chaîne entière doit-elle correspondre ?

Oui. Elle est encadrée par ^ et $ : seule une correspondance complète passe.

Q. Comment utiliser ce qui est capturé ?

Il n’y a pas de groupe capturant : seule la correspondance entière (match[0]) revient. Mettez entre parenthèses la partie voulue.