解析持续时间字符串
Parse duration time string
我想解析像
这样的持续时间字符串
1h30m40s 或 56m12s
在 PHP 中。我尝试以下 Regexp
^(\d+)h(\d+)m(\d+)s$
但它不适用于 56m12s 这样的字符串。
我怎样才能让小时数可选?
使用 ?
出现零次或一次。正则表达式的其他部分不需要括号:
^(\d+h)?\d+m\d+s$
您可以在给定的子模式周围放置一个 optional 非捕获组。
^(?:(\d+)h)?(\d+)m(\d+)s$
如果您只是想验证这些字符串,您可以删除不需要的捕获组。
^(?:\d+h)?\d+m\d+s$
我想解析像
这样的持续时间字符串1h30m40s 或 56m12s
在 PHP 中。我尝试以下 Regexp
^(\d+)h(\d+)m(\d+)s$
但它不适用于 56m12s 这样的字符串。 我怎样才能让小时数可选?
使用 ?
出现零次或一次。正则表达式的其他部分不需要括号:
^(\d+h)?\d+m\d+s$
您可以在给定的子模式周围放置一个 optional 非捕获组。
^(?:(\d+)h)?(\d+)m(\d+)s$
如果您只是想验证这些字符串,您可以删除不需要的捕获组。
^(?:\d+h)?\d+m\d+s$