我收到了第三部分的文本文件,其中包含需要刪除的ID。該文件還包含許多其他我不需要的數據,但不是以分隔符或固定寬度格式。所以我想知道是否有一種方法使用記事本+ +和正則表達式來刪除除了我的ID號碼之外的所有內容? ID號的格式是,它們是8位長,並且必須以一個0記事本+ +刪除除8個字符的字符串包含數字以外的所有文本
實例開始:00000213,00023234,02456343
我收到了第三部分的文本文件,其中包含需要刪除的ID。該文件還包含許多其他我不需要的數據,但不是以分隔符或固定寬度格式。所以我想知道是否有一種方法使用記事本+ +和正則表達式來刪除除了我的ID號碼之外的所有內容? ID號的格式是,它們是8位長,並且必須以一個0記事本+ +刪除除8個字符的字符串包含數字以外的所有文本
實例開始:00000213,00023234,02456343
你想保留的數字,可以匹配這樣的:
(?<!\d)0\d{7}(?!\d)
凡lookarounds確保你正好8個數字,而不是更多。
現在您可以簡單地匹配所有其他字符,直到您到達其中一個數字並刪除其他所有字符。此外,你需要考慮你後去除人物最後這些數字的情況下,一直到字符串的結尾:
.*?((?<!\d)0\d{7}(?!\d)|\Z)
而且隨着$1\t
替換寫回數,你不想刪除,並且在它後面添加一個標籤,以便在刪除所有內容後仍然可以區分它們(感謝Sniffer對於後面的建議)。開頭的?
非常重要,以便儘可能少地匹配(如果後面還有另一個,則不要傳遞第一個數字)。確保激活dot matches newline
選項。還請確保將Notepad ++更新至版本6.
非常聰明的想法,值得+1,一個音符,他應該用'$ 1 \ t'來代替,以便在找到的數字之間保持選項卡,以便他可以隔離它們。 –
@Sniffer好點 –
\D
與[ ]
以除去非數字文本[ ]+
替換爲[ ]
以摺疊多餘的空格。現在你有每一串連續的數字,用空格分開。[ ]([^0]\d+|\d{1,7}|\d{8}\d+)[ ]
替換爲[ ]
以刪除不以0開頭的數字,長度爲1-7個字符或長度超過8個字符。您可以使用任何你想要的分隔符;它不一定是[ ]
。它可以是,
,w
,☺
,基本上除了數字以外的任何東西都可以工作。
注意:爲清楚起見,空格編寫爲[ ]
,但這不是必需的。
什麼是更長的數字。它們應該被刪除,還是要保留8位數字? –
可以刪除任何更長的數字......它們必須只有8個字符的數字長。 –
您是否熟悉在N ++中使用正則表達式進行查找和替換?我認爲你是,但如果不是,我也可以很快地繼續。 – Michelle