Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义时间字符串的正则表达式_Java_Android_Regex_Time - Fatal编程技术网

Java 自定义时间字符串的正则表达式

Java 自定义时间字符串的正则表达式,java,android,regex,time,Java,Android,Regex,Time,我制作了一个android程序,允许用户输入自定义的“时间”字符串,例如: “3h”(表示3小时) “2m30s”(表示2分30秒) “2h962s”(指2小时962秒(原文如此)) “1h5s6c”(表示1小时5秒和百分之六秒) “5h78m228c”(表示5小时78分钟(原文如此)和228百分之一秒(原文如此)) 我一直在使用此正则表达式验证自定义时间字符串: ^([0-9]?[0-9]h)([0-9]+m)([0-9]+s)([0-9]+c)$ (因此,允许的最大时间为99小时,分、秒

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

  • 3h”(表示3小时)
  • 2m30s”(表示2分30秒)
  • 2h962s”(指2小时962秒(原文如此))
  • 1h5s6c”(表示1小时5秒和百分之六秒)
  • 5h78m228c”(表示5小时78分钟(原文如此)和228百分之一秒(原文如此))
我一直在使用此正则表达式验证自定义时间字符串: ^([0-9]?[0-9]h)([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秒”)
那么我必须使用哪个正则表达式

谢谢

检查一下这个:

^([0-9]?[0-9](h|$))?([0-9]+(m|$))?([0-9]+(s|$))?([0-9]+(c|$))?$
每次检查时间单位时,或者允许字符串结尾