禁止使用Dropbox的正则表达式的特定字符

时间:2014-07-24 15:34:17

标签: c# regex

这些是我必须禁止的角色:

\ / : ? * < > " |
到目前为止,我所拥有的是:

Regex r = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);

string cleanedFileName = r.Replace(file.FileName, String.Empty);

但据我所知,不允许所有特殊字符。

1 个答案:

答案 0 :(得分:4)

看起来你正在尝试清理文件名,如果是这样的话,试试这个:

private static string MakeValidFileName( string name )
{
   string invalidChars = System.Text.RegularExpressions.Regex.Escape( new string( System.IO.Path.GetInvalidFileNameChars() ) );
   string invalidRegStr = string.Format( @"([{0}]*\.+$)|([{0}]+)", invalidChars );

   return System.Text.RegularExpressions.Regex.Replace( name, invalidRegStr, "_" );
}