我想在我的应用程序中包括一个批处理文件重命名功能。用户可以键入目标文件名模式,并且(在替换模式中的一些通配符之后)我需要检查它是否将在Windows下成为合法文件名。我尝试使用正则表达式,[a-zA-Z0-9_]+但它不包含来自多种语言的许多国家特定字符(例如变音符号等)。做这种检查的最好方法是什么?
[a-zA-Z0-9_]+
您可以从Path.GetInvalidPathChars和获取无效字符列表GetInvalidFileNameChars。
Path.GetInvalidPathChars
GetInvalidFileNameChars
UPD: 有关如何在正则表达式中使用它们的信息,请参阅Steve Cooper的建议。
UPD2: 请注意,根据MSDN中的“备注”部分,“不能保证从此方法返回的数组包含文件和目录名称中无效的完整字符集。” sixlettervaliables提供的答案会涉及更多细节。