我在Notepad ++中有一列日期:
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 :(得分:0)
如果你确定第一个日期是星期一,你就可以:
(?:\d{4}-\d\d-\d\d\R){7}
$0\r\n
答案 1 :(得分:0)
在您的示例输入中,有一些行加倍。例如2017-06-20
。在您的示例输出中,此行也加倍,周块由八行组成。 2017-06-20
的七个唯一行和一个加倍行。我假设输入中的所有行都已排序,因此非唯一行相互排在后面。另外我假设第一行标志着一周的第一天。
正则表达式查找/替换如下:
(((.*\R)\3*){7})
\1\r\n
<强>解释强>
让我们从内到外解释(((.*\R)\3*){7})
,从第三个内部组开始:在下面的x,y
中是正则表达式部分,并不代表文字字符。
(.*\R)
第三组从开始到结束只是一行(y\3*)
我们会查找y
后跟第三个大括号组中捕获的可选部分,此处表示y
后跟可选的y
重复次数1}},此处y
是\3
引用的第三个组;这涉及2017-06-20
案例(x{7})
我们匹配了x
的七次重复,这意味着七个唯一的行可以在块中重复,所以8行一行加倍就可以了