我有一个包含许多日期的文件,格式为03/07/2017
.
例如:
我可爱的信无法阅读...
学术直接BU.tps 10.7 k03/07/2017
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
但是,我的第二个正则表达式必须选择并删除文件的所有内容(“日期”除外),效果不太好。
有人可以帮我一点吗?所以,我的期望输出应该是:
03/07/2017
02/04/2015
您可以使用
找什么: (\d{1,2}/\d{1,4}/\d{1,4})|.
用。。。来代替: (?{1}$1\n:)
.
匹配换行符: On
注意:您还可以在日期模式周围添加单词边界以使其更加精确,\b(\d{1,2}/\d{1,4}/\d{1,4})\b|.
.
Now, (\d{1,2}/\d{1,4}/\d{1,4})
将匹配日期并将其捕获到第 1 组中,如果在当前位置未找到,.
将匹配那里的任何字符。在替换模式中,日期将被替换为自身,并在其后添加换行符,如果组 1 不匹配,则仅删除该字符。
![enter image description here](https://i.stack.imgur.com/6FD6w.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)