102

我需要创建一个匹配整数的表达式,后跟“秒”或“分钟”

我试过这个表达:([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

它可以在几秒钟内正常工作,但不是几分钟。

例如 "5 seconds" 给出 5;seconds; 而“5分钟”给出;;分钟

4

3 回答 3

115

您只是错过了“或”符号的一对额外括号。以下应该可以解决问题:

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

如果没有这些,您要么匹配一个数字后跟秒,要么只匹配单词分钟

于 2013-06-18T10:33:36.490 回答
45

您可以使用单个组几秒钟/几分钟。以下表达式可能适合您的需要:

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

在线演示

于 2017-05-17T15:02:19.497 回答
0

如果您关心单词边界并希望将匹配保持在最低限度,请使用:

([0-9]+)\s*\b(seconds|minutes)\b
于 2022-01-16T08:57:56.007 回答