我正在尝试构建一个时间跟踪应用程序,该应用程序需要解析一个字符串,该字符串可以以多种格式或组合之一(但并非总是)有一段时间。我正在检查的格式是
这些可以是数字和小时或分钟之间的空格,可以组合或只是一个或另一个。一些例子:
用于匹配我当前时间的正则表达式:
((\d+(\.\d+)?)\s*(h|hr|hrs|hours))?(\s*(\d+)\s*(m|min|mins|minutes))?
如果我只是将时间字符串传递给它之前没有任何内容,这可以正常工作。我的问题是我想解析一个完整的文本字符串,其中出现的时间就在其中。一些例子:
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:0)
您真正需要做的就是复数s
可选,并添加一些单词边界标记。
尝试:
\b((\d+(\.\d+)?)\s*(h|hr|hrs?|hours?))?(\s*(\d+)\s*(m|min|mins?|minutes?))?\b