2014-01-24 41 views
0

occurr圖案我有一個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個字段由semicolumn隔開)。

然而,在一些情況下,存在一些「錯誤」,例如更多的字段分隔符或缺少的字段分隔符,例如,

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

我怎樣才能符合使用記事本+ +使用正則表達式(版本6+)這些事件?

回答

1

爲了配合有效的CSV格式的行,你可以使用:

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

DEMO

說明:

enter image description here

+1

我喜歡這個圖,它從哪裏來的? –

+2

@patchandthat:http://www.regexper.com/ –

+1

真棒回答!謝謝 – Albz

1

SujithPS答案是正確的,但對於你的數據可以簡化r這樣的egex:

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

這將匹配正確的行。你可以在regex101進行測試。

如果要選擇不正確的線條,請執行以下操作:

  1. 命中按Ctrl +˚F(或進入菜單Search>Find...)。
  2. 然後轉到Mark選項卡。
  3. 查找內容:^(?:[^;]*;){6}[^;]*$
  4. 選中該複選框Bookmark line和單選按鈕Regular expression
  5. 然後點擊Mark按鈕。
  6. 現在您可以反轉加書籤的行,通過Search>Bookmark>Inverse Bookmark,並從相同的菜單中刪除它們或其他任何東西。