Java 用于验证管道数量的正则表达式
我需要一个可以验证以下内容的正则表达式: 验证是否不存在空值或空格Java 用于验证管道数量的正则表达式,java,regex,Java,Regex,我需要一个可以验证以下内容的正则表达式: 验证是否不存在空值或空格 123 | 2.3 | 3.6 验证所有数字都不是负数 123 | 0.0 | 2.3 验证每个数字是否为9位或更少,小数点后不计算数字 123 | 333.32 | 3.4 以下是我的尝试: ^(?:[^ |]+(?:\\|[^ |]+){0,2})$ 我想到了这个: ^(\d{1,9}(?:\.\d+)?)\|(\d{1,9}(?:\.\d+)?)\|(\d{1,9}(?:\.\d+)?)$ 第一个号码: (\d{1,9}
123 | 2.3 | 3.6
验证所有数字都不是负数
123 | 0.0 | 2.3
验证每个数字是否为9位或更少,小数点后不计算数字
123 | 333.32 | 3.4
以下是我的尝试:
^(?:[^ |]+(?:\\|[^ |]+){0,2})$
我想到了这个:
^(\d{1,9}(?:\.\d+)?)\|(\d{1,9}(?:\.\d+)?)\|(\d{1,9}(?:\.\d+)?)$
第一个号码:
(\d{1,9}(?:\.\d+)?)
\d{1,9}
表示1位,最多9位<代码>(?:\。\d+)表示可能的小数点和小数点后的一个或多个数字
对于后面的数字\\\\124;
表示一个管道,之后我包含与第一个数字相同的正则表达式(\d{1,9}(?:\.\d+))
我将每个数字封装在()
中,使每个数字成为一个捕获组。如果您不需要捕获数字,只需验证,此选项也可以:
^\d{1,9}(?:\.\d+)?(?:\|\d{1,9}(?:\.\d+)?){2}$
小数点是否有限制?从您的第一次尝试来看,它们看起来介于0和2之间。是的,小数位数是有限的。我如何验证它们始终与number | number | numbers在一起?此正则表达式就是这样做的。或者你的意思是它们总是三个数字?是的,总是三个数字,例如12 | 12.4 | 12.5纠正12不正确12 | 6不正确,小数点后可以有多少位数?无论小数点后有多少位数