正则表达式 \或者//出现一次

mengyalizuopeng 2015-10-14 02:45:55
判断文件路径

/和\\ 这个合法 并且每个分割只出现一次

/^([A-Za-z]{1}:\/[\w\/]*)+\w+$/; 这样 只判断 了 / 并且///多个也返回true
(\/|\\\\){1} 这样更不对

求高手指点
...全文
312 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2015-10-15
  • 打赏
  • 举报
回复
/^[a-z]\:((\/|\\\\|\\)[^/\\\/]+)*(\/|\\\\|\\)$/i
  • 打赏
  • 举报
回复
\\{2}|/{2} 就行了,匹配连续两个或以上的斜杠,成功就是不合法吧
  • 打赏
  • 举报
回复
还是不太明白 \\可以?但有3个以上的\\\或者2个以上的//就不合法? 就你举的例子,Contains(@"\\\") || Contains(@"//")就行了,正则用 \\\\\\|//就可以了
mengyalizuopeng 2015-10-14
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
不好意思看错了,你好像要的是判断只包含一个分隔符即可? 那将上面的判断改成if(depth == 2)就行了 至于正则有两种判断方法 直接的 var match = Regex.Match(path, @"^[^/\\]+[/\\][^/\\]+$"); if(match.Success) { } 或者判断出现次数 int depth = Regex.Matches(path, @"[/\\]").Count; if(count == 1) { }
我没说清楚 我的意思是 我要判断别人的文件夹 d:/gg/dfs/f/23 可能有无数层 这样的合法 d:\\d\\gg\hh\dd 这样的也合法 d:\\\sdsdf\sd\s\\\\sf 这样的不合法 d://f//t/f 这样的也不合法
  • 打赏
  • 举报
回复
不好意思看错了,你好像要的是判断只包含一个分隔符即可? 那将上面的判断改成if(depth == 2)就行了 至于正则有两种判断方法 直接的 var match = Regex.Match(path, @"^[^/\\]+[/\\][^/\\]+$"); if(match.Success) { } 或者判断出现次数 int depth = Regex.Matches(path, @"[/\\]").Count; if(count == 1) { }
  • 打赏
  • 举报
回复
你就是想判断路径,换个思路试试 int depth = path.Split('/', '\\').Length; //如果有3组,则说明有两层目录 if(depth == 3) { }

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧