JAVA中用于验证CSV格式的正则表达式

3

你好,我正在尝试逐行验证 CSV 表格。 CSV 文件包含:

9,EditTest,expectedResult=nooptionsacltrue
10,AddTest,features={w;f;r}
1,AddTest,projectType=new,vtName=28HPM,status=ACTIVE,canOrder=Yes,expectedResult=duplicate
2,AddTest,projectType=old,vtName=28nm,status=ACTIVE,canOrder=Yes,expectedResult=invalidfeatures

这是我的代码:-
    public class Example {

    public static void main(String[] args) throws Exception {

            BufferedReader br = new BufferedReader(new FileReader("testdbcsv/ACL.csv"));
            while((line=br.readLine())!=null){
                String pattern = "^(\\d+),(\\w+),((\\w+)=(\\w+)),((\\w+)=(\\w+)+?";
                if(line.matches(pattern)){
                    System.out.println("pattern matched");
                }
//Code
}

但我的正则表达式似乎不正确。 有人能帮我找到正确的csv正则表达式吗?谢谢。 或者是否有其他方法可以根据模式验证我的CSV,而不使用正则表达式?


给定的 CSV 应该匹配所有行吗? - Adarsh
是的,但有没有一种将CSV转换为XML并验证的方法? - Newbie
我的答案中的正则表达式可以完成这个任务。 - Adarsh
你为什么想把它转换成XML格式? - Adarsh
为了方便验证XML。 - Newbie
如果您确定您的CSV文件格式与您提供的格式相同,那么使用正则表达式应该可以更少的代码完成任务,而不是将CSV转换为XML,然后验证XML。 - Adarsh
3个回答

2
假设第二行的验证应该失败,
^(\\d),[A-Za-z]+(,[A-Za-z]+=[A-Za-z0-9]+)+$

编辑

这应该匹配您给定的CSV中的所有四行。

^(\\d)+,[A-Za-z]+(,[A-Za-z]+=[A-Za-z0-9{};]+)+$

1
尝试这个:"\\d+,\\w+(,\\w+=\\w+)+"

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接