检查string是否为Match getinvalidfilenamecars()
本文关键字:getinvalidfilenamecars Match string 是否 检查 | 更新日期: 2023-09-27 18:17:34
我尝试检查字符串是否匹配GetInvalidFileNameChars()
我想使用regex
所以我把GetInvalidFileNameChars()
的字符放入一个字符串中,然后检查
if Regex.IsMatch(id, stringInvalidFileName)
我想如果id = "4711./"
那么Regex.IsMatch(id, stringInvalidFileName)
应该是真的,但它是假的
我的错是什么,为什么是假的?提前感谢
为什么使用正则表达式?
这将正常工作:
string s = "4711./";
if (Path.GetInvalidFileNameChars().Any( c => s.Contains(c))
正如Rawling在下面指出的,当你处理大字符串时,使用Intersect
可能会更有效:
string longString = "Something much, much longer than this";
if (longString.Intersect(Path.GetInvalidFileNameChars()).Any())
对于相对较短的字符串(例如文件路径),可能没有什么好处。我更喜欢第一个选项,因为在我看来,它更清楚地传达了代码的意图。