正则表达式验证 CSV

Regular expression validate CSV

我想使用正则表达式检查 CSV 文件是否有效,但我遇到了问题。

这是我要匹配的例子:

[start]13 numbers;anything not containing ";"[nothing after this]

例如:
匹配 :

1234567891234;some text

不匹配 因为第二个 ";" :

1234567891234;some text;

问题出在第二个 ";" 之后。
这个会匹配,但我不知道如何避免:

1234567891234;some text; sometext

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

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

您似乎尝试了 [^;]*,但由于此否定字符 class 匹配换行符,因此它对您不起作用。您只需要将 LF / CR 添加到 class:

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

参见regex demo

详情:

  • ^ - 字符串开头
  • (\d{13}) - 第 1 组:13 位数字
  • ; - 一个分号
  • ([^;\r\n]*) - 第 2 组:CR、LF 和 ;
  • 以外的零个或多个字符
  • $ - 字符串结尾。