/ / Comment rendre facultative la dernière partie de ce REGEX? - javascript, regex

Comment rendre la dernière partie de cette REGEX facultative? - javascript, regex

Je passe en revue tous les liens d'une page et compare leurs valeurs href au modèle suivant:

([^/]+)/([0-9]+)/([^/]+)

Le problème est qu'il existe 2 types de formats de lien sur la page:

1. /video/123/slug
2. /video/123

Numéro 1. obtient bien capturé avec le regex ci-dessus mais le 2e échoue. Je veux rendre le troisième morceau de l'expression régulière (le slug) facultatif afin que les deux formats de lien retournent vrai lorsqu'ils sont mis en correspondance contre l'expression régulière. Comment faire ça?

Réponses:

3 pour la réponse № 1

Mettez le dernier bit entre crochets d'un groupe non capturant et ajoutez un ?:

([^/]+)/([0-9]+)(?:/([^/]+))?

2 pour la réponse № 2

Utilisation ? quantificateur, ce qui rend votre modèle facultatif. Il correspond à 0 ou 1 occurrence du motif.

De plus, vous devez regrouper la dernière barre oblique, avec votre dernière partie de votre expression régulière, dans un groupe non capturant.

([^/]+)/([0-9]+)(?:/([^/]+))?

0 pour la réponse № 3

Si vous ajoutez un ? cela devrait rendre la dernière partie du modèle facultative.