用分号分隔的浮点数的Java正则表达式

用分号分隔的浮点数的Java正则表达式,java,regex,Java,Regex,我已经创建了一个应用程序,可以进行一些计算,它非常简单。 用户必须输入未知数量的介于1和6之间的浮点数,以分号分隔,小数点可以是a,也可以是a。。 例如: 2,3;2.4;3.5.4;3.3;5,5;六, 那么我如何在正则表达式中要求这样的情况,因为现在我使用的是一种变通方法,这非常糟糕,因为它是不必要的代码。您可以使用如下内容:\d+[,.]\d+?;|$例如 这将尝试匹配一个数字,该数字后面有一个由表示的十进制部分。或者,角色。在每个数字之后,它希望找到一个分号或字符串的结尾 编辑:根据您最

我已经创建了一个应用程序,可以进行一些计算,它非常简单。 用户必须输入未知数量的介于1和6之间的浮点数,以分号分隔,小数点可以是a,也可以是a。。 例如:

2,3;2.4;3.5.4;3.3;5,5;六,


那么我如何在正则表达式中要求这样的情况,因为现在我使用的是一种变通方法,这非常糟糕,因为它是不必要的代码。

您可以使用如下内容:\d+[,.]\d+?;|$例如

这将尝试匹配一个数字,该数字后面有一个由表示的十进制部分。或者,角色。在每个数字之后,它希望找到一个分号或字符串的结尾


编辑:根据您最后的评论:[0-5][,.]\d+?| 6[,.]0*?;|$+我会做你想做的事。有一个示例可用。

您可以使用此正则表达式。它所做的是检查数字是否在1-5的范围内,后跟一个浮点部分,或者直接向上看数字1-6


为什么要使用正则表达式?仅仅做数字不是更简单吗;?这就是我正在做的,但我必须检查一些情况,比如是否有双重的;;或或或者,如果它只是以;或者不管用户做了什么错事:@dquijada split使用正则表达式;所以我试过了,但例如当我输入2时;4.它说没有match@ScriptKiddy:请使用您正在使用的代码更新您的问题。我提供的表达式应该匹配单个术语,而不是整行,因此您需要多次应用它,或者使用\d+[,.]\d+?;|$+。这已经更好了,谢谢,我只需要数字范围在1到6之间,你也知道怎么做吗,sry,因为我要求这么多,而不是你自己去想。@ScriptKiddy:请看我的更新。带浮点数。现在不工作:几乎工作完美,我仍然可以做这样的事情4,;4或2;2.4;@ScriptKiddy在我最近一次编辑后,第一个应该不再有效。我可以问一下为什么第二个不正确,因为示例中也有非浮点数。第二个末尾有一个分号,这并不重要,因为它在将字符串拆分为数字后仍然有效,但看起来不太好think@ScriptKiddy可以将其更改为字符串必须以数字结尾。现在我无法输入2或4,5这样的单个数字
String input = "2,3;2.4;3;5.4;3.3;5,5;6";
System.out.println(input.matches("([0-5][,.]+\\d+(;|$)|[1-6](;|$))+\\d$);