我有一个包含大量文件夹,子文件夹和所有文件的目录.我的项目的想法是递归整个目录,收集文件的所有名称并替换无效字符(对于SharePoint迁移无效).
但是,我对正则表达式完全不熟悉.我需要在文件名中摆脱的字符是:   ~, #, %, &, *, { } , \, /, :, <>, ?, -, |和""
我想用一个空格来代替这些字符.我希望使用一种string.replace()方法来查看所有这些文件名并进行替换.
到目前为止,我得到的唯一代码是递归.我正在考虑递归扫描驱动器,获取这些文件的名称并将它们放入List<string>.  
任何人都可以帮助我如何使用RegEx查找/替换无效字符与这些特定字符?
Viv*_*ath 49
string pattern = "[\\~#%&*{}/:<>?|\"-]";
string replacement = " ";
Regex regEx = new Regex(pattern);
string sanitized = Regex.Replace(regEx.Replace(input, replacement), @"\s+", " ");
这将用单个空格替换空白行.
有没有办法摆脱多余的空间?
尝试这样的事情:
string pattern = " *[\\~#%&*{}/:<>?|\"-]+ *";
string replacement = " ";
Regex regEx = new Regex(pattern);
string sanitized = regEx.Replace(input, replacement);
考虑自己学习一些关于正则表达式的知识,因为它在开发中也很有用(例如在Visual Studio中搜索/替换).