Check if string is Match GetInvalidFileNameChars()
本问题已经有最佳答案,请猛点这里访问。
我尝试检查字符串是否匹配
我想用正则表达式
所以我将
1 | if Regex.IsMatch(id, stringInvalidFileName) |
我想如果
应该是真的,但这是假的
我的错是什么,为什么这是假的? 提前致谢
为什么要使用正则表达式?
这样可以正常工作:
1 2 | string s ="4711./"; if (Path.GetInvalidFileNameChars().Any( c => s.Contains(c)) |
正如Rawling在下面指出的那样,当你处理大字符串时,使用
1 2 | string longString ="Something much, much longer than this"; if (longString.Intersect(Path.GetInvalidFileNameChars()).Any()) |
对于相对较短的字符串(例如文件路径),可能几乎没有任何好处。 在我看来,我更喜欢第一个选项,因为它更清楚地传达了代码的意图。