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


83

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

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

它可以工作几秒钟,但不能工作几分钟。

例如,“ 5秒”给出5;秒;而“ 5分钟”给出了;分钟

Answers:


98

您只是想念“ OR”符号的额外一对括号。以下应该可以解决问题:

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

没有这些,您要么匹配数字,然后是秒,要么只是分钟。


17
但这不是必需的“额外匹配”。要么使用,([0-9]+)\s+(?:(\bseconds\b)|(\bminutes\b))要么([0-9]+)\s+(\bseconds\b|\bminutes\b)
dognose 2013年

3
是的,没错,不需要\ bseconds \ b和\ bminutes \ b左右的括号!
micantox

33

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

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

在线演示

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.