private static readonly Regex FileDirectoryRegex = new Regex(@"^[^""\\:|<>*?]*\/{0,1}$");
if (folderName.EndsWith("/") || folderName.Contains("//"))
{
throw new ArgumentException());
}
如何将最后一个 if 语句验证添加到我的 FileDirectoryRegex 中?
请您参考如下方法:
您可以合并 if您的正则表达式的条件如下:
@"^(?!.*//)[^""\\:|<>*?]*(?<!/)$"
^^^^^^^^ ^^^^^^
参见 regex demo at RegexStorm (因为它是一个多行字符串演示,所以在那里稍作修改)
(?!.*//)是一个否定前瞻,如果引擎找到 //,匹配将失败。除了换行符 ( .* ) 和 (?<!/) 之外的 0+ 个字符之后的某处如果存在 /,则为否定后视,匹配失败。就在字符串结尾之前。
但是,许多用户表示将所有条件塞入 1 个正则表达式是不好的做法,请考虑选择更具可读性的方法(您现在拥有的方法,拆分条件)。
