包含一个或另一个词的正则表达式

use*_*748 69 regex preg-match

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

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

它工作正常几秒钟,但不是几分钟.

例如"5秒"给出5秒; 而"5分钟"给出;;分钟

mic*_*tox 78

您刚刚错过了"OR"符号的额外一对括号.以下应该做的伎俩:

([0-9]+)\s+((\bseconds\b)|(\bminutes\b))
Run Code Online (Sandbox Code Playgroud)

没有那些你要么匹配一个数字后跟秒或只是单词分钟

  • 但那是一个不需要的"额外匹配".使用`([0-9] +)\ s +(?:(\bseconds\b)|(\ bminutes\b))`或`([0-9] +)\ s +(\ bseconds\b |\bminutes\b)` (16认同)
  • 是的,这是真的,不需要围绕\ bseconds\b和\ bminutes\b的括号! (3认同)

Mis*_*lis 20

您可以使用单个组进行秒/分钟.以下表达式可能适合您的需求:

([0-9]+)\s*(seconds|minutes)
Run Code Online (Sandbox Code Playgroud)

在线演示


Ric*_*ide 5

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

([0-9]+)\s*\b(seconds|minutes)\b
Run Code Online (Sandbox Code Playgroud)