正则表达式验证CSV

时间:2017-04-20 13:29:38

标签: regex pattern-matching regular-language

我想使用Regex检查CSV文件是否有效,但我遇到了问题。

以下是我想要匹配的示例:

  

[开始] 13个数字;任何不包含";" [此后没有]

例如:
匹配

1234567891234;some text
由于第二个";"

不匹配

1234567891234;some text;

问题是在第二个";" 之后有什么东西。
这个会匹配,但我不知道如何避免它:

1234567891234;some text; sometext

这是我使用的正则表达式和example

^(\d{13});(.*(?<!\;)$)

1 个答案:

答案 0 :(得分:1)

您似乎尝试[^;]*,但由于此否定字符类符合换行符,因此它不适用于您。您只需要在课程中添加LF / CR:

^(\d{13});([^;\r\n]*)$

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • (\d{13}) - 第1组:十三位数
  • ; - 分号
  • ([^;\r\n]*) - 第2组:除CR,LF和;之外的零个或多个字符
  • $ - 字符串结束。
相关问题