117 votes

Expression régulière contenant un mot ou un autre

Je dois créer une expression correspondant à un nombre entier suivi de "secondes" ou de "minutes".

J'ai essayé cette expression : ([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

Cela fonctionne bien pour les secondes, mais pas pour les minutes.

Par exemple, "5 secondes" donne 5;secondes ; tandis que "5 minutes" donne ;;minutes

128voto

micantox Points 5276

Vous avez juste oublié une paire de parenthèses supplémentaires pour le symbole "OR". Ce qui suit devrait faire l'affaire :

([0-9]+)\s+((\bseconds\b)|(\bminutes\b))

Sans cela, vous deviez faire correspondre un nombre suivi de secondes OU juste le mot minutes.

59voto

Mistalis Points 12950

Vous pouvez utiliser un seul groupe pour les secondes/minutes. L'expression suivante peut répondre à vos besoins :

([0-9]+)\s*(seconds|minutes)

Démonstration en ligne

3voto

Richard Points 14490

Si vous vous préoccupez des limites des mots et que vous voulez réduire les correspondances au minimum, utilisez cette méthode :

([0-9]+)\s*\b(seconds|minutes)\b

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X