Regular expression containing one word or another

我的未来我决定 提交于 2019-12-18 10:58:07

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!