首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式删除文件名中的特定文本

正则表达式删除文件名中的特定文本
EN

Stack Overflow用户
提问于 2018-06-05 03:19:44
回答 1查看 379关注 0票数 0

我正在使用一个文件传输工具,它允许在将文件复制到新文件夹中时使用正则表达式来重命名文件(所以我只使用正则表达式,而不是在代码库中)。我有一大组文件,它们具有特定的命名约定,文件名末尾有一个版本号。我的目标是删除这个文件的版本号和下划线。

以下是文件名的一些示例:

  • 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扩展名。

使用\_(.*?)\.,它选择句点之前的第一个下划线。

如何选择句号之前的最后一个下划线删除文本但保留句号?也许有更好的方法?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 03:24:56

如果你使用正则表达式引擎工作,你可以像这样工作,而不用任何东西替换它。

(_\d+)(?=\.pdf$)

解释:

  • (_\d+)将跟随一个下划线,后跟一个或多个digits
  • (?=\.pdf$)将匹配文件名末尾的.pdf扩展名
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50687414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档