*?]*\/{0,1}$"); if (folder-6ren">
gpt4 book ai didi

c# - 如何更改正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:41 24 4
gpt4 key购买 nike

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 个正则表达式是不好的做法,请考虑选择更具可读性的方法(您现在拥有的方法,拆分条件)。

关于c# - 如何更改正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com