小编Yar*_*nov的帖子

Java正则表达式,用于验证数字逗号分隔值

我需要使用这些数字制作正则表达式:

 "+1", "1.0", "1,233", "1,233,456.34", "-1", ".34", "1,345,234,122,123"
Run Code Online (Sandbox Code Playgroud)

这些无效:

 "++1", "1.0.0", "1,23,3", "+-1233456.34", "002", "1.", "a1", "1,,2", "1 2", "1,2", ",2".
Run Code Online (Sandbox Code Playgroud)

我尝试了这个正则表达式的不同变体:

 "[\\+\\-]?[1-9]{0,3}([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\.][\\d]*)?"
Run Code Online (Sandbox Code Playgroud)

测试代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class REGEX {
private static final String REGEX = "[\\+\\-]?[1-9]{0,3}([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\d]{3}[\\,]{1})?([\\.][\\d]*)?";

private static String[] validNumbers = { "+1", "1.0", "1,233",
        "1,233,456.34", "-1", ".34", "1,345,234,122,123" };

private static String[] invalidNumbers = { "++1", "1.0.0", "1,23,3",
        "+-1233456.34", "002", "1.", "a1", "1,,2", "1 2", "1,2", ",2" };

public static void main(String[] args) {
    Pattern pattern …
Run Code Online (Sandbox Code Playgroud)

java regex csv numeric

5
推荐指数
1
解决办法
4995
查看次数

标签 统计

csv ×1

java ×1

numeric ×1

regex ×1