Regular expression containing one word or another

user965748 picture user965748 · Jun 18, 2013 · Viewed 99.3k times · Source

I need to create an expression matching a whole number followed by either "seconds" or ""minutes"

I tried this expression: ([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

It works fine for seconds, but not minutes.

E.g. "5 seconds" gives 5;seconds; while "5 minutes" gives ;;minutes

Answer

micantox picture micantox · Jun 18, 2013

You just missed an extra pair of brackets for the "OR" symbol. The following should do the trick:

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

Without those you were either matching a number followed by seconds OR just the word minutes