我正在为 notepad++ 中的批量重命名实用程序创建一个重命名对文件,这样我就可以将许多文件重命名为 gjpoju908g00s43.mp4 为 last christmas.mp4
但是我需要从每一行中删除每个文件名的第二次出现
我所拥有的一个例子
yTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4|2017-03-09random textyTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4
HPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4|2017-03-09random textHPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4
lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4|2017-03-09random text\u2764lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4
td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4|2017-03-08random text!!td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4
O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4|2017-03-04random text.O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4
我想要什么
yTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4|2017-03-09random text.mp4
HPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4|2017-03-09random text!.mp4
lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4|2017-03-09random text\u2764l.mp4
td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4|2017-03-08random text!!.mp4
O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4|2017-03-04random text..mp4
请注意,“随机文本”部分代替了我的实际文件名,它们都是不同的,而不是每次都是实际的单词“随机文本”。所以我基本上只想从每行中删除文件名的第二个出现位置,即开始一行的位置。
我对这一切真的很陌生,所以我一直在尽我所能去搜索并找到自己的答案,而且我已经设法将文件放到了原来的位置,弄清楚了如何删除两个字符之间的所有内容,在某些字符之后创建新行,还有一些其他的事情我相信对你们所有人来说都是非常基础的,但最后一部分我只是想不出如何去做,或者是否有可能。
我知道我可以手动选择每行的开头,找到并替换为空白,但有超过 245 行,所以如果可能的话,我宁愿找到一种自动化的方法
答案1
以下是一种方法:
- Ctrl+H
- 找什么:
^(.+?)\.mp4.+?\K\1
- 用。。。来代替:
LEAVE EMPTY
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
解释:
^ # beginning of line
(.+?) # group 1, 1 or more any character but newline
\.mp4 # literally .mp4
.+? # 1 or more any character but newline
\K # forget all we have seen until this position
\1 # backreference to group 1
屏幕截图(之前):
屏幕截图(之后):
答案2
一个更简单的方法是:
查找 :^([^.]*)(.*)\1
替换为 :\1\2