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

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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.