java – 用h:m:s匹配计时器的正则表达式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 用h:m:s匹配计时器的正则表达式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1941字,纯文字阅读大概需要3分钟。
内容图文
![java – 用h:m:s匹配计时器的正则表达式](/upload/InfoBanner/zyjiaocheng/734/558ef3939fac44ad9a65784b96c8ab87.jpg)
我一直在努力匹配客户端的变量.它读起来是这样的:
0s
12s
1m15s
15m0s
1h0m5s
1h15m17s
我想在一个查找中捕获所有三个数字分组.
(\d+)(?=h(\d+)m(\d+))*?(?=m(\d+))*?
我上面一直在研究的正则表达式只会抓取每个新查找中的连续组.
例:
input is 12s group 1 is 12 ... works.
输入是1m12s组1是1然而要获得12,我必须再次使用find到达下一组12.
就像我没有立即注意到的那样,确保检查组是否为空以捕获可选的组.
解决方法:
试试这种方式:
((\d+)h)?((\d+)m)?((\d+)s)
然后,您将组2捕获为小时,组4捕获分钟,组6捕获秒
看到它在这里工作:https://regex101.com/r/bZ4zW4/2
以图形方式:
编辑
要在JAVA中获得结果(自上次编辑以来),请执行以下操作:
Pattern p = Pattern.compile("((\\d+)h)?((\\d+)m)?((\\d+)s)");
Matcher m = p.matcher("1h15m17s");
if (m.find()){
Integer hour = Integer.valueOf(m.group(2));
Integer minute = Integer.valueOf(m.group(4));
Integer second = Integer.valueOf(m.group(6));
System.out.println(hour + " - " + minute + " - " + second);
}
m = p.matcher("1h0m5s");
if (m.find()){
Integer hour = Integer.valueOf(m.group(2));
Integer minute = Integer.valueOf(m.group(4));
Integer second = Integer.valueOf(m.group(6));
System.out.println(hour + " - " + minute + " - " + second);
}
m = p.matcher("15m0s");
if (m.find()){
Integer minute = Integer.valueOf(m.group(4));
Integer second = Integer.valueOf(m.group(6));
System.out.println(minute + " - " + second);
}
m = p.matcher("12s");
if (m.find()){
Integer second = Integer.valueOf(m.group(6));
System.out.println(second);
}
m = p.matcher("0s");
if (m.find()){
Integer second = Integer.valueOf(m.group(6));
System.out.println(second);
}
输出将分别为:
1 - 15 - 17
1 - 0 - 5
15 - 0
12
0
请注意,在每种情况下,我都会得到一个特定的值.如果您尝试从不存在的匹配器中获取一分钟,您将获得java.lang.NumberFormatException,因为它将返回null.所以你必须先检查一下.以下块将最终出现在上述异常中:
m = p.matcher("0s");
if (m.find()){
Integer minute = Integer.valueOf(m.group(4)); //exception here
Integer second = Integer.valueOf(m.group(6));
System.out.println(second);
}
内容总结
以上是互联网集市为您收集整理的java – 用h:m:s匹配计时器的正则表达式全部内容,希望文章能够帮你解决java – 用h:m:s匹配计时器的正则表达式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。