从字符串中解析值

时间:2010-06-22 01:18:53

标签: java regex text-parsing

如何解析字符串中的值,例如下面的值?

12:40:11  8    5                  87

数字之间的差距各不相同,第一个值是时间。以下正则表达式不会分隔时间组件:

str.split("\\w.([:]).")

有什么建议吗?

2 个答案:

答案 0 :(得分:9)

正则表达式\s+匹配一个或多个空格,因此它会split为4个值:

"12:40:11", "8", "5", "87"

作为Java字符串文字,此模式为"\\s+"

如果您想获得所有6个号码,那么您还希望在:上进行拆分,因此模式为\s+|:。作为Java字符串文字,这是"\\s+|:"

参考


Scanner

您可以使用java.util.ScanneruseDelimiter,而不是使用String.split,而不是split。优点是它有int nextInt()可以用来将数字提取为int(如果这确实是你感兴趣的话)。

相关问题

答案 1 :(得分:2)

请参阅Pattern docString API

使用

str.split("\\s+");

将产生

[ '12:40:11', '8', '5', '87' ]

str.split("\\s+|:");

应该产生

[ '12', '40', '11', '8', '5', '87' ]