RegularExpression匹配前面有数字的复数单词


RegularExpression to match word in plural preceded by numbers

考虑以下字符串:

20 mins

我想用PHP创建一个RegularExpression,它能够使用preg_match()找到这样的字符串。表达式应具有足够的动态性,以便识别前面数值的非复数和更多选项。例如,以下示例也应该匹配:

  • 1 min
  • 0.5 mins
  • 999 mins

我尝试过以下操作,但没有执行:

(^|'b)[0-99999*]'/b'min[s]?'b

您可以使用以下模式:

'b[0-9]+(?:'.[0-9]+)?'smins?'b

注意:用's+ 替换's时,数字和"分钟"之间可以有多个空格

注2:字符类是一个有字符的袋子,写[0-99999*]没有意义。请参阅手册。

此模式:

'b'd+(?:'.'d+)? mins?'b

它应该匹配你想要的所有情况,包括这些:

•1 min
•0.5 mins
•999 mins
•0.51213123 mins
•2352352.51213123 mins