【问题标题】:Regex for filename if known extension文件名的正则表达式(如果已知扩展名)
【发布时间】:2017-08-24 15:37:56
【问题描述】:

我想出了一个正则表达式来查找项目中的所有图像。

(\/|\\)(.*)\.(gif|png|jpg|jpeg)

我现在要做的是找到扩展名(gif|jpg|etc...),然后捕获匹配之前的单词(即文件名)。

我完全不知道如何构建一个后向捕获组(??)

我正在做的是查看一个大型 Web 项目,查找代码中实际使用的所有图像,然后我将清理图像目录中不再引用的图像。

【问题讨论】:

  • 文件名在第 2 组中。您使用的是什么语言?
  • c# 和记事本++

标签: c# regex notepad++


【解决方案1】:

使用 Npp,您可以搜索:

([^\/\\]+)(?=\.(gif|png|jpg|jpeg))

([^\/\\]+)(?=\.(?:gif|png|jpe?g))

匹配文件名。

根据评论,您可以使用以下方法查找/替换:

  • Ctrl+H
  • 查找内容:^.*?([^\/\\]+\.(?:gif|png|jpe?g)).*?$
  • 替换为:$1
  • 全部替换

这将删除一行中除文件名+扩展名之外的所有内容。

【讨论】:

  • 这真的很有帮助。我接下来要做的事情是在 NPP 中查找/替换,并且基本上将除 $1.$2 之外的所有字符的行清空,所以我只剩下该行上的 filename.ext。
猜你喜欢
  • 2022-12-18
  • 2010-09-19
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
相关资源
最近更新 更多