××××××××××正则表达式求解××××××××××

jimu8130 2007-07-23 10:34:20
要求验证的是文件路径
1 本地路径可以通过
2 能过滤常见文件目录名称特殊字符
3 如果是其他机器则支持ip地址和机器名进行访问(\\16.16.16.16\ss或\\testserver\d$\com或\\testserver\d\com)
我现在想到的基本的要求就这些,等和大家讨论的时候再提新要求
...全文
459 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdbox@qq.com 2007-07-23
  • 打赏
  • 举报
回复
sorry,不知以下是否符合你的要求:

^[A-Za-z]\:\s*|^\\\\((([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d))|([^[^\\]+))((\\[^\\]+)+)


//////////////////////////////////////////////
MSN:bdbox@hotmail.com请给我一个与您交流的机会!
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
to bdbox:
请你写完后,自己先测试下,给出的表达式自身就是错误的!
bdbox@qq.com 2007-07-23
  • 打赏
  • 举报
回复
要求验证的是文件路径
1 本地路径可以通过
2 能过滤常见文件目录名称特殊字符
3 如果是其他机器则支持ip地址和机器名进行访问(\\16.16.16.16\ss或\\testserver\d$\com或\\testserver\d\com)

试试:
[A-Za-z]\:\s*|\\\\((?<IPAddr>^[1]\d\d$|^[2][0-5][0-5]$|^\d$)\.\IPAddr\.\IPAddr\.\IPAddr)+(\\\\\s*)*


//////////////////////////////////////////////
MSN:bdbox@hotmail.com请给我一个与您交流的机会!
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
to bdbox:
请问你写后自己测试通过没有?
要求3没通过
bdbox@qq.com 2007-07-23
  • 打赏
  • 举报
回复
要求验证的是文件路径
1 本地路径可以通过
2 能过滤常见文件目录名称特殊字符
3 如果是其他机器则支持ip地址和机器名进行访问(\\16.16.16.16\ss或\\testserver\d$\com或\\testserver\d\com)


[A-Za-z]\:\s*|\\\\((([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d)\.([1]\d\d|[2][0-5][0-5]|\d))\s*)


//////////////////////////////////////////////
MSN:bdbox@hotmail.com请给我一个与您交流的机会!
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
to keystudio:
是啊,我也挺想念他的,一般你们两个都是成对出现的
我还没开始学习了!
等下给分,开会先
keystudio 2007-07-23
  • 打赏
  • 举报
回复
我也初学 很奇怪过客这几天怎么不在.......
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
keystudio真是正则高手啊,过段时间学习正则得多请教你啊
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
这样的就别用正则了。正则的功能是string=>struct/class之间分析的时候。简化操作的。判断工作交给正则会让匹配很慢的。
----------------------------------
那如果是你,你会如何来进行判断路径是否正确了?
正则是我目前想到的较简便的方法。
keystudio 2007-07-23
  • 打赏
  • 举报
回复
Regex re = new Regex(@"^((([a-zA-Z]:)\\)?|(\\\\(((((1?\d?\d)|(2[0-4]\d)|(25[0-5]))\.){3}((1?\d?\d)|(2[0-4]\d)|(25[0-4]))\\)|(\w+))))(\\?[^\\/:*?""<>|()\.]{1,255})+\\?$");

兔子-顾问 2007-07-23
  • 打赏
  • 举报
回复
这样的就别用正则了。正则的功能是string=>struct/class之间分析的时候。简化操作的。判断工作交给正则会让匹配很慢的。
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
to bdbox:
不满足我的要求2以及ip限制
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
to keystudio:
ip地址还是没验证完全!192.555.56.55居然可以通过


bdbox@qq.com 2007-07-23
  • 打赏
  • 举报
回复
[^A-Za-z]\:\s*|\\\\\s*

//////////////////////////////////////////////
MSN:bdbox@hotmail.com请给我一个与您交流的机会!
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
老兄,我的BLOG上有一篇文章,你先了解一下吧,正则入门的文章

blog.csdn.net/lubosun
----------------
唉,入门的文章我看过很多,可就是没有入门,郁闷,如果你能解决我现在这个问题,不胜感激!项目紧张,没太多时间给我钻研这部分东西。
其实我也找到类似的代码比如
var fileReg =/^([A-Za-z]:|\\{2}[-\w]+\\(([^"*/:?|<>\\,;[\]+=.\x00-\x20]|\.[.\x20]*[^"*/:?|<>\\,;[\]+=.\x00-\x20])([^"*/:?|<>\\,;[\]+=\x00-\x1F]*[^"*/:?|<>\\,;[\]+=\x00-\x20])?))\\([^"*/:?|<>\\.\x00-\x20]([^"*/:?|<>\\\x00-\x1F]*[^"*/:?|<>\\.\x00-\x20])?\\)*$/;
if(!fileReg.test(s))
但是无法保证\\16.16.16.16\ss也能通过!不知道你白菜兄能否帮忙改改
bdbox@qq.com 2007-07-23
  • 打赏
  • 举报
回复
[^A-Za-z]|\s

//////////////////////////////////////////////
MSN:bdbox@hotmail.com请给我一个与您交流的机会!
keystudio 2007-07-23
  • 打赏
  • 举报
回复
Regex re = new Regex(@"^((([a-zA-Z]:)\\)?|(\\\\(((\d+\.){3}\d+\\)|(\w+))))(\\?[^\\/:*?""<>|()\.]{1,255})+\\?$");
Match rem = re.Match(@"\\16.16.16.16\ss");
Response.Write(rem.Success);


看能符合楼主需要不
keystudio 2007-07-23
  • 打赏
  • 举报
回复
Regex re = new Regex(@"^((([a-zA-Z]:)\\)?|(\\\\(((\d+\.){3}\d+\\)|(\w+))))(\\?[^\\/:*?""<>|()\.]{1,255})+\\?$");
Match rem = re.Match(@"\\16.16.16.16\ss");
Response.Write(rem.Success);


看能符合楼主需要不
lubosun 2007-07-23
  • 打赏
  • 举报
回复
老兄,我的BLOG上有一篇文章,你先了解一下吧,正则入门的文章

blog.csdn.net/lubosun
jimu8130 2007-07-23
  • 打赏
  • 举报
回复
怎么没人看啊?
加载更多回复(1)

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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