Expresión regular que contiene una palabra u otra

83

Necesito crear una expresión que coincida con un número entero seguido de "segundos" o "" minutos "

Probé esta expresión: ([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

Funciona bien durante segundos, pero no minutos.

Por ejemplo, "5 segundos" da 5; segundos; mientras que "5 minutos" da ;; minutos

usuario965748
fuente

Respuestas:

98

Acaba de perder un par adicional de corchetes para el símbolo "O". Lo siguiente debería funcionar:

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

Sin esos, estaba haciendo coincidir un número seguido de segundos O solo la palabra minutos

micantox
fuente
17
pero esa es una "coincidencia extra" que no es necesaria. O use ([0-9]+)\s+(?:(\bseconds\b)|(\bminutes\b))o([0-9]+)\s+(\bseconds\b|\bminutes\b)
conozca el
3
¡Sí, eso es cierto, no es necesario que los corchetes estén entre \ bseconds \ by \ bminutes \ b!
micantox
33

Puede utilizar un solo grupo durante segundos / minutos. La siguiente expresión puede adaptarse a sus necesidades:

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

Demostración online

Mistalis
fuente