自定义时间字符串

时间:2017-08-17 07:40:26

标签: java android regex time

我制作了一个Android程序,允许用户输入自定义的“时间”字符串,例如:

  • 3h ”(意思是3小时)
  • 2m30s ”(意思是2分30秒)
  • 2h962s ”(意思是2小时962秒(原文如此))
  • 1h5s6c ”(表示1小时5秒和6秒)
  • 5h78m228c ”(意思是5小时,78分钟(原文如此)和228个百分之一秒(原文如此))

我一直在使用这个正则表达式来验证自定义时间字符串: 的 ^([0-9] [0-9] 1H)?([0-9] + M)([0-9] + S)?([0-9] + C)?$ (因此允许最多99小时,无限次数,秒和百分之一秒)

问题是,我想可选 最后单元,以便使用静默 >关注单位。在上面的示例中,将允许用户输入这些字符串而不是上述字符串:

  • 3 ”(未指定“h”,以使程序将“3”视为“3小时”)
  • 2m30 ”(未指定“s”,以使程序将“30”视为“30秒”)
  • 2h962s ”(同样,因为没有指定“s”,程序会将“962”视为“962分钟”)
  • 1h5s6 ”(未指定“c”,以使程序将“6”视为“百分之六十”)
  • 5h78m228c ”(同样,因为没有指定“c”,程序会将“228”视为“228秒”)

我可以使用哪个正则表达式?

由于

1 个答案:

答案 0 :(得分:1)

检查一下:

^([0-9]?[0-9](h|$))?([0-9]+(m|$))?([0-9]+(s|$))?([0-9]+(c|$))?$

每次检查时间单位时,或者允许结束字符串。