问题
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
回答1:
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
回答2:
You can use a single group for seconds/minutes. The following expression may suit your needs:
([0-9]+)\s*(seconds|minutes)
Online demo
来源:https://stackoverflow.com/questions/17166618/regular-expression-containing-one-word-or-another