gpt4 book ai didi

Java:用于解析正负 double 的正则表达式

转载 作者:行者123 更新时间:2023-12-02 00:03:25 25 4
gpt4 key购买 nike

我正在尝试从一行文本中解析 double 。我发现了几行我认为正在做我想做的事情的代码。但是,我发现它不会解析负 double (只会将它们解析为正数)。我对正则表达式完全陌生,它有点令人不知所措。我想知道是否有人可以解释下面的代码并告诉我每个部分的含义,以及如何修改它以便它能够解析正 double 和负 double ?提前致谢!

double nextDouble;
Matcher matcher = Pattern.compile("(?!=\\d\\.\\d\\.)([\\d.]+)").matcher(line);
if (matcher.find()) nextDouble = Double.parseDouble(matcher.group(1)));

编辑:这是一行的示例。“104.44518717、34.09785265、103.39288764、0.09813121、0.00000000、-0.46612322、4.68576504”

它将 -0.46612322 解析为 0.46612322。

最佳答案

您的表达式有两个部分。

括号中的第一部分是确保匹配字符串前面没有数字和点。不知道为什么您需要该部件,如果您提供有帮助的示例线。

括号中的第二部分是匹配部分。这只是说匹配 1 个或多个数字和点。

如果您想让表达式使用负数,您只需将“-”字符添加到匹配集中即可。

(?!=\\d-\\.)([-\\d\\.]+) 

但是这个以及你的表达式将匹配具有多个点(点)的字符串。例如122.12.12

所以我建议您尝试以下操作。请注意,我删除了第一部分。

(-?(\\d)+(\\.)?(\\d)*)

关于Java:用于解析正负 double 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com