删除方括号以及它们之间的区别

时间:2014-04-16 06:29:45

标签: regex replace desktop-application

我正在使用Mac App Name Mangler。它允许使用正则表达式。我有一堆文件和文件夹包含以下内容。

  

文件名[24.9MB] .ext
  文件夹名称[1GB]

我希望正则表达式删除括号以及它们之间的内容。如果在括号之前有一个空格,如果它也被删除了。因此变得......

  

文件名.ext
  文件夹名称

我现在已经阅读了一些关于正则表达式的内容,并意识到括号本身就是语法的一部分。我需要绕过它以及它们中包含的内容。任何帮助,将不胜感激。必须手动清理数十万个文件和文件夹名称太多了。

3 个答案:

答案 0 :(得分:0)

使用查找和替换功能:

Find: \s*\[[^]]*]
Replace with: 

正则表达式:

\s*            whitespace (\n, \r, \t, \f, and " ") (0 or more times)
 \[            '['
  [^]]*        any character except: ']' (0 or more times)
  ]            ']'

答案 1 :(得分:0)

要匹配括号及其内容,正则表达式将为\[[^\]]+\]。现在,如果要在括号前捕获空格,则可以使用[ ]*。它意味着零个或多个空格。

因此,结合两者,您的搜索正则表达式将是:

[ ]*\[[^\]]+\]

仅供参考:[^\]]+表示除]之外的任何字符都有一次或多次。

答案 2 :(得分:0)

使用"非捕获组"括号:What is a non-capturing group? What does a question mark followed by a colon (?:) mean?

http://rubular.com/r/bVhVbKomKm

/(.+)(?:\s?\[[^\]]+\])(.+)?/

# Match 1
# 1.    File Name
# 2.    .ext
#
# Match 2
# 1.    Folder Name
# 2.