2014-07-24 15 views
1

這些都是字符,我必須禁止:不允許特定的字符使用正則表達式的Dropbox

\/: ? * < > " | 

繼承人是我到目前爲止有:

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

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

但是從我的理解是禁止所有的特殊字符。

+1

你需要一個正則表達式?你可以簡單地鏈接所有字符的'.Replace()'。 – Stijn

+0

更快嗎? –

+0

是的,是的。 – Igor

回答

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, "_"); 
} 
+0

這是我的問題的一個很好的解決方案。謝謝。 –

相關問題