正则表达式验证 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 和 ;
以外的零个或多个字符
$
- 字符串结尾。
我想使用正则表达式检查 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 和;
以外的零个或多个字符
$
- 字符串结尾。