我想解析像
这样的持续时间字符串1h30m40s 或 56m12s
PHP中的。我尝试以下Regexp
^(\d+)h(\d+)m(\d+)s$
但它没有使用像 56m12s 这样的字符串。 我如何让时间可选?
答案 0 :(得分:2)
您可以在给定的子模式周围放置一个optional非捕获组。
^(?:(\d+)h)?(\d+)m(\d+)s$
如果您只想验证这些字符串,可以删除不必要的捕获组。
^(?:\d+h)?\d+m\d+s$
答案 1 :(得分:1)
将?
用于零次或一次。正则表达式的其他部分不需要括号:
^(\d+h)?\d+m\d+s$