C:\\Documents and Settings\\Administrator\\桌面,这个也是合法的,使用上面正则校验位非法
纠正一下,可以匹配的,对于类似C:\\Documents and Settings\\Administrator\\桌面\\abc匹配成功,但是对于只有C:\\匹配失败,在第一个[]后加一个“*” (?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]*+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)
我这个是合法的路径
System.out.println("D://a//a.txct".matches("(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5]+?((([/\\\\][\\w\\u4e00-\\u9fa5]+)*?[/\\\\][\\w\\u4e00-\\u9fa5\\.]*$)||$)"));
还是不带文件名了,这个你试试吧,刚才忘了空格了
(?i)^[a-z]:(//||\\\\)[\\w\\u4e00-\\u9fa5\\s]*+((([/\\\\][\\w\\u4e00-\\u9fa5\\s]+)*$)||$)
File f = new File("d::/");
System.out.println(f.isDirectory() | f.isFile());
//修改了对于这样\\ a \\这样的匹配。我想这次满足你的要求了
System.out.println("D::\\".matches("(?i)^[a-z]:((?<!\\s)[/\\\\](?!\\s)[\\w\\u4e00-\\u9fa5\\s]*)*$"));
matches("[a-zA-Z](:/)[\\w/.]+")