验证正确路径的正则表达式

paodan 2010-04-06 04:50:20
验证windows下正确路径的正则表达式。,比如D:\abc\dsdd,D://data,路径中不含有特殊字符
...全文
517 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanwangabc 2010-05-14
  • 打赏
  • 举报
回复
学习了
xiangzideai 2010-05-11
  • 打赏
  • 举报
回复

matches("[a-zA-Z](:/)[\\w/.]+")
paodan 2010-05-11
  • 打赏
  • 举报
回复
解决,正则是如下

String regx = "(?i)^[a-z]:((?<!\\s)[/\\\\](?!\\s)([^:?*\"<>|]+)*)*$";
paodan 2010-04-14
  • 打赏
  • 举报
回复
顶,期待解答
孤独剑客 2010-04-13
  • 打赏
  • 举报
回复
正则表达式, 学习中!
paodan 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 hbgzg3006 的回复:]
Java code

//修改了对于这样\\ a \\这样的匹配。我想这次满足你的要求了
System.out.println("D::\\".matches("(?i)^[a-z]:((?<!\\s)[/\\\\](?!\\s)[\\w\\u4e00-\\u9fa5\\s]*)*$"));
[/Quote]不支持特殊字符,例如 D:\abc@# 则不行,
hbgzg3006 2010-04-13
  • 打赏
  • 举报
回复

//修改了对于这样\\ a \\这样的匹配。我想这次满足你的要求了
System.out.println("D::\\".matches("(?i)^[a-z]:((?<!\\s)[/\\\\](?!\\s)[\\w\\u4e00-\\u9fa5\\s]*)*$"));
paodan 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 pomelover 的回复:]
为什么要用正则表达式?直接用API多好
File f = new File("d::/");
System.out.println(f.isDirectory() | f.isFile());
[/Quote]需要使用正则来验证输入的
James.Ji 2010-04-13
  • 打赏
  • 举报
回复
为什么要用正则表达式?直接用API多好
File f = new File("d::/");
System.out.println(f.isDirectory() | f.isFile());
paodan 2010-04-13
  • 打赏
  • 举报
回复
例如 D:,D:\,D:\data,D:\data\正确,D:data,D:\data\ abc,D::,D::\,D::\data均非法
paodan 2010-04-13
  • 打赏
  • 举报
回复
顶,期待
wudeaaa 2010-04-07
  • 打赏
  • 举报
回复
要是含有特殊字符 D:\data\abc@#则匹配不上,且D:\data\也匹配不上
paodan 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 paodan 的回复:]
引用 9 楼 hbgzg3006 的回复:
Java code
(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)
还是不带文件名了,这个你试试吧,刚才忘了空格了
C:\\Documents and Settings\\Administrator\\桌面,这个也是合法……
[/Quote]纠正一下,可以匹配的,对于类似C:\\Documents and Settings\\Administrator\\桌面\\abc匹配成功,但是对于只有C:\\匹配失败,在第一个[]后加一个“*”

(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]*+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)

paodan 2010-04-06
  • 打赏
  • 举报
回复
目录路径允许空格的
paodan 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hbgzg3006 的回复:]
Java code
(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)
还是不带文件名了,这个你试试吧,刚才忘了空格了
[/Quote]C:\\Documents and Settings\\Administrator\\桌面,这个也是合法的,使用上面正则校验位非法
gaokangstudy 2010-04-06
  • 打赏
  • 举报
回复
这个不太懂学习了
sky123123 2010-04-06
  • 打赏
  • 举报
回复
学习下咯~
hbgzg3006 2010-04-06
  • 打赏
  • 举报
回复
(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)
还是不带文件名了,这个你试试吧,刚才忘了空格了
hbgzg3006 2010-04-06
  • 打赏
  • 举报
回复
试一下吧,可以到文件名。你测测行不?D://a.txt D:\a.txt D://a/a.txt等都合法 例如:D://a//a.txt不合法
hbgzg3006 2010-04-06
  • 打赏
  • 举报
回复

System.out.println("D://a//a.txct".matches("(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5]+?((([/\\\\][\\w\\u4e00-\\u9fa5]+)*?[/\\\\][\\w\\u4e00-\\u9fa5\\.]*$)||$)"));
加载更多回复(6)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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