我正在使用一个文件传输工具,允许使用正则表达式重命名文件,因为它们被复制到一个新文件夹中(所以我只使用正则表达式而不是代码库)我有一大套具有特定命名约定的文件,文件名末尾带有版本号。我的目标是删除此文件版本号以及下划线。
以下是文件名的一些示例:
the_file_name_DS_017_EN_35.pdf
the_file_name_DS_037_SP_35.pdf
different_filename_DS_EN_5.pdf
我希望将它们改为:
the_file_name_DS_017_EN.pdf
the_file_name_DS_037_SP.pdf
different_filename_DS_EN.pdf
我正在尝试删除版本号,以便新服务器上的文件命名约定始终相同。我对正则表达式并不擅长,这是我到目前为止所做的尝试,但无济于事:
使用_[^_]+$
,它会选择最后一个下划线以及.pdf
扩展名。
使用\_(.*?)\.
选择第一个下划线直到句号。
如何在删除该文本但保留期限之前选择最后一个下划线?也许有更好的方法?提前谢谢!
答案 0 :(得分:0)
尝试在此处使用正则表达式:
_ [0-9] * \。
并将其替换为
答案 1 :(得分:0)
如果你的正则表达式运动具有正面的前瞻性,你可能会像这样工作并替换它什么
(_\d+)(?=\.pdf$)
<强> Demo 强>
说明:
(_\d+)
将使用下划线后跟一个或多个数字(?=\.pdf$)
将匹配为文件名末尾.pdf
扩展名的正面预测