C#正则校验:路径以指定路径开头且其后无斜杠
解决方案
你的需求是校验路径必须以user/folder/开头,且基础路径之后的部分不能包含斜杠(或无后续内容)。之前的正则问题在于仅匹配了基础路径后的第一个非斜杠字符,没覆盖“基础路径本身”和“后续多个非斜杠字符”的场景。
正确的正则表达式
^user\/folder\/(?:[^\/]*)$
正则说明
^:锁定字符串开头,确保路径从指定基础路径起始user\/folder\/:匹配目标基础路径(转义斜杠是为了在正则字符串中避免歧义,C#中也可直接写user/folder/)(?:[^\/]*):非捕获组,匹配零个或多个非斜杠字符——*允许后续无内容(对应user/folder/这种有效情况),[^\/]确保后续内容不会出现斜杠$:锁定字符串结尾,避免基础路径后存在隐藏斜杠或不符合规则的内容
C#代码示例
using System.Text.RegularExpressions; string basePathPattern = @"^user\/folder\/(?:[^\/]*)$"; string[] testPaths = { "user/folder/text.txt", "user/folder/subfolder/test2.txt", "user/folder/", "user/sub1/" }; foreach (string path in testPaths) { bool isValid = Regex.IsMatch(path, basePathPattern); Console.WriteLine($"{path} → {(isValid ? "有效" : "无效")}"); }
运行后输出结果符合你的校验要求:
user/folder/text.txt → 有效
user/folder/subfolder/test2.txt → 无效
user/folder/ → 有效
user/sub1/ → 无效
额外提示
如果基础路径是动态可变的,记得先用Regex.Escape()方法转义路径中的正则特殊字符(如.、+等),避免匹配出错。
内容的提问来源于stack exchange,提问作者Humberto Aicardi
相关产品推荐
相关产品推荐

