2017-04-12 108 views
4

我的文件名为0154562A5BS16101[001],我想删除“[001]”以便离开0154562A5BS16101如何用Regex从文件名中删除字符串“[xyz]”?

我一直在使用正则表达式的尝试:

var output = Regex.Replace(filename, @"[]", string.Empty); 

但它抛出:

System.ArgumentException: 'parsing '[]' - Unterminated [] set.' 

我觉得这是一个非常简单的正则表达式为大师,但我没有用太多的经验正则表达式。

回答

4

由于[]元字符在正则表达式语言中,您需要转义它们。你还需要告诉你想要的一切匹配的右方括号正则表达式:

var output = Regex.Replace(filename, @"\[[^\]]*\]", string.Empty); 

\[\]在两端是要替换方括号。中间的[^\]]*部分与除关闭方括号之外的任何数量的字符匹配。

Demo.

+0

这是一个绝对的步伐。谢谢!我必须阅读更多的正则表达式。 – tura08