【发布时间】:2018-02-16 10:34:55
【问题描述】:
来自 CSV 文件验证器的代码 sn-p:
我创建了Pattern 和Matcher,它会识别是否匹配。
接下来我想确定是否没有匹配,哪个字段不匹配并导致错误。
这样做的最佳方法是什么?
Pattern bodyPattern = Pattern.compile("([0-9]{11}),([A-Z0-9]{7}),([0-9]{7,8}),([0-9]{1}\\W[0-9]{2}E\\W[0-9]{2}),([0-9]{7,8}),([A-Z]{5}),([A-Z]{8,25}),(\\d+\\.\\d{0,2}),([0-9]{3})");
Matcher matcher = bodyPattern.matcher(line);
if(matcher.matches()) {
System.out.println("SUCCESS: Body validation was successful");
} else {
System.out.println("ERROR: Body validation failed in line " + lineNumber);
}
当前的输出如下所示。
我希望能够在令牌编号 x 处说失败,但不确定如何执行此操作。
第 1 行,令牌 #1,令牌:20171006003
第 1 行,令牌 #2,令牌:OUTWARD
第 1 行,令牌 #3,令牌:1000004
第 1 行,令牌 #4,令牌:2.00E+36
第 1 行,令牌 #5,令牌:1000005
第 1 行,令牌 #6,令牌:FALSE
第 1 行,令牌 #7,令牌:接受
第 1 行,令牌 #8,令牌:400
第 1 行,令牌 #9,令牌:826
错误:第 1 行的正文验证失败
错误:令牌编号中的正文验证失败
【问题讨论】:
-
所以基本上你想说csv中哪个字段无效?
-
对那个欺骗问题的回答基本上就是你要找的。span>
标签: java regex csv pattern-matching