正则表达式验证文件名

Ser*_*gii 2 c# regex .net-2.0

如果filename有另一个字符,那么a-zA-Z0-9!@$%^&*()_+=-[]{}';,. 我们必须将它们替换为某些字符或删除.

Tim*_*ker 6

resultString = Regex.Replace(subjectString, @"[^a-zA-Z0-9!@$%^&*()_+=[\]{}';,.-]", "X");
Run Code Online (Sandbox Code Playgroud)

应该这样做.

说明:我复制了您的字符列表并将它们粘贴到一个否定的字符类([^...])中.我只需做两个小修改:转义结束括号(\])并将短划线放在字符串的末尾.


aba*_*hev 5

using System.Linq;
using System.IO;

string path = ...;

IEnumerable<char> invalidChars = Enumerable.Concat(
    Path.GetInvalidFileNameChars(),
    Path.GetInvalidPathChars());

foreach (char c in invalidChars)
{
    path = path.Replace(c, ''); // or any char you want
}
Run Code Online (Sandbox Code Playgroud)