我需要创建一个匹配整数后跟“秒”或“分钟”的表达式。
我尝试了这个表达式:([0-9]+)\s+(\bseconds\b)|(\bminutes\b)
它对于“秒”可以正常工作,但对于“分钟”不行。
例如,“5秒”返回“5;seconds;”,而“5分钟”返回“;;minutes”。
我需要创建一个匹配整数后跟“秒”或“分钟”的表达式。
我尝试了这个表达式:([0-9]+)\s+(\bseconds\b)|(\bminutes\b)
它对于“秒”可以正常工作,但对于“分钟”不行。
例如,“5秒”返回“5;seconds;”,而“5分钟”返回“;;minutes”。
([0-9]+)\s+((\bseconds\b)|(\bminutes\b))
如果没有这些,你将只匹配一个后面跟着秒的数字,或者只匹配单词“minutes”。
如果您关心单词边界并希望最小限度地保留匹配,请使用以下内容:
([0-9]+)\s*\b(seconds|minutes)\b
([0-9]+)\s+(?:(\bseconds\b)|(\bminutes\b))
或者([0-9]+)\s+(\bseconds\b|\bminutes\b)
。 - dognose