检查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是否为Match getinvalidfilenamecars()

为什么使用正则表达式?

这将正常工作:

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())

对于相对较短的字符串(例如文件路径),可能没有什么好处。我更喜欢第一个选项,因为在我看来,它更清楚地传达了代码的意图。

相关文章:
  • 没有找到相关文章