正则表达式不删除方括号

时间:2011-04-30 10:03:14

标签: c# .net regex

我在c#中使用以下正则表达式[^a-zA-Z\d!-]模式来清除文件名中的特殊字符,这样我就可以从中提取基本信息并从中构建初始类属性值

然而无论我似乎做什么都不会根据正则表达式构建器清除字符串中的方括号它应该匹配方括号但是当我运行替换操作时不删除它们

任何帮助,为什么会非常感激,修复也会很好=)

我在c#中使用的代码如下:

var removeSpecChar = new Regex(@"[^a-zA-Z\d!-]");               

msa = msa.Substring(0, msa.Length - 4);
removeSpecChar.Replace(msa, " ").Trim();

1 个答案:

答案 0 :(得分:1)

没试过,但是你真的应该逃避特征集中的-

var removeSpecChar = new Regex(@"[^a-zA-Z\d!\-]"); 

另请注意,\d不等同于0-9,它匹配任何unicode数字(包括阿拉伯数字等)。如果这不是你的意图,你可能想要改变它。