寻找一个可以在文件名中找到任何第二组方括号的正则表达式

时间:2014-09-06 22:43:56

标签: regex

我正在寻找一个正则表达式模式,它会在文件名中找到任何第二组方括号(如果存在)并删除它及其内容。必须能够应对文件名中所有可能的变化。用于File Renamer。

例如,

  

Eman_Elif [abcdefg 01] txet [XYZ-567] .txt

结果

  

Eman_Elif [abcdefg 01] txet .txt

3 个答案:

答案 0 :(得分:1)

使用“在文件重命名器中使用正则表达式查找”选项。您可以使用以下内容。

Find: \[[^]]*](\.[^.]+)$
Replace: $1

答案 1 :(得分:1)

将第一个设置与第二个匹配,然后将整个匹配替换为捕获的第一个部分:

Search: (\[.*?\].*?)\[.*?\]
Replace: $1

答案 2 :(得分:0)

如果你确实想使用正则表达式处理这个问题,那么这些方面似乎有用:

s/^(.*?)(?:(\[[^\]]*?\].*?)(?:\[[^\]]*?\]))(.*)$/$1$2$3/

要求“必须能够应对文件名中所有可能的变化”,这是非常开放的。例如,是否存在不匹配或嵌套括号?

Eman_Elif [abcdefg [xyz] 01] txet [XYZ-567].txt
Eman_Elif [abcdefg [[xyz 01] txet [XYZ-567].txt
Eman_Elif [abcdefg xyz ]01] txet]  [X[123]YZ-567].txt