正则表达式匹配使用Notepad ++不会发生的模式

时间:2014-01-24 11:10:10

标签: regex notepad++

我有一个CSV文件,就像数千行一样

40;206;343;-840;127.5;0;6
44;194;343;-837;127.5;0;6
48;183;343;-836;127.5;0;6

(7个字段用分号分隔)。

然而,在少数情况下会出现一些"错误"例如更多字段分隔符或缺少字段分隔符,例如

40;20;;6;343;-;840;127.5;0;6
4;4;194;343;-837;127.5;0;6
48;183;343;-836;;;;;6

如何使用regexp使用Notepad ++(版本6+)匹配这些事件?

2 个答案:

答案 0 :(得分:1)

要匹配有效的csv格式行,您可以使用:

((?:[ \n\r]|^)\w+(?:;[\w.-]+){6}(?:[ \n\r]|&))

<强> DEMO

说明:

enter image description here

答案 1 :(得分:1)

SujithPS答案是正确的,但对于您的数据,您可以简化正则表达式:

^(?:[^;]*;){6}[^;]*$

这将匹配正确的行。您可以在regex101进行测试。

如果要选择不正确的行,请执行以下操作:

  1. 点击 Ctrl + F (或转到菜单Search&gt; Find...)。
  2. 然后转到Mark标签。
  3. 找到:^(?:[^;]*;){6}[^;]*$
  4. 选中复选框Bookmark line和单选按钮Regular expression
  5. 然后点击Mark按钮。
  6. 现在,您可以通过Search&gt;反转加入书签的行。 Bookmark&gt; Inverse Bookmark,您可以从同一菜单中删除它们或其他任何内容。