紧凑的正则表达式来解析天数

时间:2015-04-09 16:25:37

标签: java regex

我需要使用正则表达式来解析:"天:1,3,5"。 所有日期必须分开提取。我想出了以下表达式:

"Days:(\d?)[,]?(\d?)[,]?(\d?)[,]?(\d?)[,]?(\d?)[,]?(\d?)[,]?(\d?)[,]?"

问题是字符串可能有31天。 有没有更紧凑的方法来重写这个正则表达式?

2 个答案:

答案 0 :(得分:1)

你可以使用这样的正则表达式:

Days:(\d+)|(\d+)

<强> Working demo

然后,在第1组中,您获得第一天,在第2组中,您将获得其他日期。

enter image description here

答案 1 :(得分:0)

您应该查看本文的“组和捕获:

”一章

http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#cg

将不会有您定义的群组。你输入的时间并不重要。 我建议你使用.split(&#34;,&#34;)将它放入一个数组中。