2017-05-28 72 views
0

我有日期的列在我的記事本+ +:使用recoginsed數據替換

2017-06-12 
2017-06-13 
2017-06-14 
2017-06-15 
2017-06-16 
2017-06-17 
2017-06-18 
2017-06-19 
2017-06-20 
2017-06-20 
2017-06-21 
2017-06-22 
2017-06-23 
2017-06-24 
2017-06-25 
2017-06-26 
2017-06-27 
2017-06-28 
2017-06-29 
2017-06-30 
2017-07-01 
2017-07-02 
2017-07-03 
2017-07-04 
2017-07-05 
2017-07-06 
2017-07-07 
2017-07-08 
2017-07-09 
2017-07-10 

我需要它在幾周內切放置\r\n每星期之後,如:

2017-06-12 
2017-06-13 
2017-06-14 
2017-06-15 
2017-06-16 
2017-06-17 
2017-06-18 

2017-06-19 
2017-06-20 
2017-06-20 
2017-06-21 
2017-06-22 
2017-06-23 
2017-06-24 
2017-06-25 

2017-06-26 
2017-06-27 
2017-06-28 
2017-06-29 
2017-06-30 
2017-07-01 
2017-07-02 

2017-07-03 
2017-07-04 
2017-07-05 
2017-07-06 
2017-07-07 
2017-07-08 
2017-07-09 

2017-07-10 

我通過更換使用RegEx。我覺得7天:

\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n\d\d\d\d-\d\d-\d\d\r\n 

現在,我想補充\r\n

但如何使用與自己加\r\n替代選擇的數據?

+0

你怎麼知道一個日期是星期日? – Toto

+0

完整的解決方案看起來是一個兩步驟:刪除重複的行,然後在每個第7個日期之後添加換行符。 –

回答

0

如果您是確保第一次約會是星期一,你可以說:

  • 按Ctrl + ^h
  • 查找內容:$0\r\n
  • (?:\d{4}-\d\d-\d\d\R){7}
  • 與更換全部替換
+0

這工作正常,但我忽略了?:因爲我不知道它是什麼意思。什麼?:用於? – vico

+0

@vico它處理'2017-06-20'線是否正確? –

+0

@vico:'(?:)'被稱爲非捕獲組,它比捕獲組更有效率。 – Toto

0

在您的示例輸入中,有一些行加倍。例如2017-06-20。在你的輸出示例中,這一行也增加了一倍,並且周塊八行組成。 七個獨特的行和一個加倍行爲2017-06-20。我假定輸入中的所有行都是排序的,因此非唯一行相互排在一起。此外,我假設第一行標誌着一週的第一天。

做一個正則表達式查找/替換這樣的:

  • 打開替換對話框
  • 查找內容:(((.*\R)\3*){7})
  • 替換爲:\1\r\n
  • 檢查正則表達式,不要檢查。匹配換行符
  • 單擊替換或全部替換

說明

讓由內而外的解釋(((.*\R)\3*){7}),開始於第三內羣:下面x,y是正則表達式的零件和不意思是文字字符。

  • (.*\R)第三組是從開始只有一行結束
  • (y\3*)我們找了y之後是第三大括號組中拍攝的可選部分,在這裏它意味着y後跟可選重複次數爲y,這裏的y\3所引用的第三個組;這涉及的是2017-06-20情況
  • (x{7})我們匹配7個repetions的x,這意味着這裏7至極可以在塊重複唯一行,所以用一個8號線加倍是確定
+0

這種方法很好,但由於未知的原因,我有第一組中的8個項目,而其他7個。 – vico

+0

它更正2017-06-20,但離開2017年11月5日。爲什麼? – vico

+0

什麼意思\ 1在替換部分? – vico