我想要像这样解析字符串
0.1142 0.0000 0.0000 0.0004 0.0000 0.0000 2299/2299 MakeRequest [23]
我想从这个字符串中获取 ol double 。我正在使用下一个模式
.+ ([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-9\.]+) .+ ([0-9\/])+
匹配空格、一个或多个字符、空格(总共 3 个字符)
第二个字符串只有 2 个空格。
0.0000 383248/383248
关于Java 正则表达式令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246777/