我想要像这样的解析字符串
0.1142 0.0000 0.0000 0.0004 0.0000 0.0000 2299/2299 MakeRequest [23]
我想从这个字符串中获取ol双打。我正在使用下一个模式
.+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\.]+) [\\p{Space}]+ ([0-9\\/])+ [\\p{Space}] "\\.(MakeRequest) .+
这个字符串解析得很好 但我不能解析下一个字符串!
20.1600 0.0001 0.0000 0.0053 0.0001 0.0000 383248/383248 MakeRequest [22]
这个字符串非常相似!但首先是解析,第二个不是: - (
更新 轻松模式
.+ ([0-9\\.]+) .+ ([0-9\\.]+) .+([0-9\\.]+) .+ ([0-9\\.]+) .+ ([0-9\\.]+) .+ ([0-9\\.]+) .+ ([0-9\\/])+ .+\\.(MakeRequest) .+
也行不通
我正在使用
java.util.regex.Pattern
和
java.util.regex.Matcher
答案 0 :(得分:4)
([0-9 \。] +)。+([0-9 \ /])+
匹配空格,一个或多个字符,空格(共3个字符)
第二个字符串只有2个空格。
0.0000 383248/383248
答案 1 :(得分:2)
以下代码会出现什么问题:
final Matcher m = Pattern.compile("\\d+\\.\\d+").matcher(s); // s is your line
while (m.find()) System.out.println(Double.parseDouble(m.group()));
答案 2 :(得分:1)
这是获得所有双打的模式
[0-9]*\.[0-9]*