Regex 正则表达式:选择并删除文件的所有内容,除了“引用”;日期“;格式

Regex 正则表达式:选择并删除文件的所有内容,除了“引用”;日期“;格式,regex,windows,notepad++,Regex,Windows,Notepad++,我有一个包含许多日期的文件,格式为2017年7月3日 例如: 我那封可爱的信看不懂 院士指示BU.tps 10.7K2017年7月3日11:39-a-- bash:删除表前文件名02/04/2015中除最新版本以外的所有文件 所以,我想匹配并删除除日期格式以外的所有内容。首先,我制作了一个正则表达式来查找所有日期: \d{1,2}/\d{1,4}/\d{1,4} 我将它包含到另一个正则表达式\b(?(\d{1,2}/\d{1,4}/\d{1,4}))[\w-]+\b 但是,我的第二个正则表达式,

我有一个包含许多日期的文件,格式为2017年7月3日

例如:

我那封可爱的信看不懂

院士指示BU.tps 10.7K
2017年7月3日
11:39-a--

bash:删除表前文件名
02/04/2015
中除最新版本以外的所有文件

所以,我想匹配并删除除日期格式以外的所有内容。首先,我制作了一个正则表达式来查找所有日期:

\d{1,2}/\d{1,4}/\d{1,4}

我将它包含到另一个正则表达式
\b(?(\d{1,2}/\d{1,4}/\d{1,4}))[\w-]+\b

但是,我的第二个正则表达式,它必须选择并删除文件的所有内容,除了“DATE”,效果不太好

谁能帮我一点忙吗?因此,我的愿望输出应该是:

2017年7月3日

2015年4月2日

您可以使用

查找内容:
(\d{1,2}/\d{1,4}/\d{1,4})|。

替换为
(?{1}$1\n:)
匹配换行符
:On

注意:您还可以在日期模式周围添加单词边界,使其更加精确,
\b(\d{1,2}/\d{1,4}/\d{1,4})\b}.

现在,
(\d{1,2}/\d{1,4}/\d{1,4})
将匹配日期并将其捕获到组1中,如果在当前位置找不到该日期,
将匹配其中的任何字符。在替换模式中,日期被替换为它自己,并在它之后添加一个换行符,如果组1不匹配,则只删除字符

您可以使用

查找内容:
(\d{1,2}/\d{1,4}/\d{1,4})|。

替换为
(?{1}$1\n:)
匹配换行符
:On

注意:您还可以在日期模式周围添加单词边界,使其更加精确,
\b(\d{1,2}/\d{1,4}/\d{1,4})\b}.

现在,
(\d{1,2}/\d{1,4}/\d{1,4})
将匹配日期并将其捕获到组1中,如果在当前位置找不到该日期,
将匹配其中的任何字符。在替换模式中,日期被替换为它自己,并在它之后添加一个换行符,如果组1不匹配,则只删除字符


你到底想得到什么?你好,维克托。我编辑我的问题。最后,我只想在文件中保留这两个日期:
2017年7月3日
2015年4月2日
最后你想得到什么?你好,Wiktor。我编辑我的问题。最后,我只想保留这两个日期:
2017年7月3日
2015年4月2日
非常感谢Wiktor。即使没有。匹配换行符;)也可以工作非常感谢,威克托。即使没有。匹配换行符;)也可以工作