【问题标题】:Remove spaces before file extension with regex使用正则表达式删除文件扩展名前的空格
【发布时间】:2015-10-22 22:00:56
【问题描述】:

我对这个正则表达式很陌生,我以前得到过一些帮助,我已经设法解决了我的一些正则表达式问题,但现在我遇到了问题

使用 Total Commander,您可以使用正则表达式更改名称,而我尝试重命名我拥有的每个文件扩展名前有一个或多个空格的文件。

我只想找到每个文件扩展名前有空格的文件,以便我可以删除它。

【问题讨论】:

  • 尝试\s(\.[^.]+)$ 并替换为$1
  • 您的文件名中是否还有其他点,如果是,您是要保留前面的空格还是要替换它们?

标签: regex space


【解决方案1】:

使用

\s+(\.[^.]+)$

替换为$1。如果您只想匹配 1 个空格,请删除 +。保留+ 删除扩展名前的所有空格。

demo

【讨论】:

  • 非常感谢,是的,它可以工作,它甚至可以删除文件扩展名,但没关系。所有的都有.zip,所以我可以在之后轻松添加它们。谢谢
  • 其实如果你在替换中使用$1,匹配后会恢复扩展名。看,(...),不仅匹配,它还捕获(存储在缓冲区中)匹配的潜文本。 $1 是对该文本的反向引用。
【解决方案2】:

在linux中这样做

find 'path to folder' -type f  -regextype posix-awk -regex  '.*/.+ *[.][A-Za-z]{3}$' -exec rm -f  {} \;

-type f # 查找所有文件

-regextype posix-awk -regex '.*/.+ *[.][A-Za-z]{3}$' # 使用 awk 匹配一个空格,后跟扩展名并删除它们(小心!)

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2020-09-03
    • 2013-03-18
    • 2021-10-31
    相关资源
    最近更新 更多