@ 匹配路径
路径的格式
- win下
– 盘符 文件夹(可有可无) 文件名
-linux下
– /app/乱七八糟
需求
兼容两者,分开文件路径和文件
java代码
public void getPath() {
// 测试地址
List<String> pics = new ArrayList<String>();
pics.add("/app/agentUpload/uploadFile/2213532144710014199/legalUrl1.jpg");
// 这个list第一位装路径,第二位是文件名
List<String[]> result = new ArrayList<String[]>();
String regEx = "([\\s\\w+:]*?/?(/.+/)?)((\\w+)\\.(\\w+))$";
Pattern p = Pattern.compile(regEx);
for (String path : pics) {
// 如果路径是\ 则替换成/
path = path.replace('\\', '/');
Matcher m = p.matcher(path);
// 查看是否匹配到
if (m.matches()) {
String[] s = new String[3];
// 打印效果
System.out.println("group-0:"+m.group(0));
System.out.println("group-1:"+m.group(1));
System.out.println("group-2:"+m.group(2));
System.out.println("group-3:"+m.group(3));
System.out.println("group-4:"+m.group(4));
System.out.println("group-5:"+m.group(5));
// 获取路径和文件名
s[0] = m.group(1);
s[1] = m.group(3);
s[2] = m.group(4);
result.add(s);
} else {
continue;
}
}
// 如果需要,可设置返回值
//return result;
}
结果如下:
group-0:/app/agentUpload/uploadFile/2213532144710014199/legalUrl1.jpg
group-1:/app/agentUpload/uploadFile/2213532144710014199/
group-2:/app/agentUpload/uploadFile/2213532144710014199/
group-3:legalUrl1.jpg
group-4:legalUrl1
group-5:jpg
当然,你可以往list里面加入各种不同的路径
public void getPath() {
// 测试地址
List<String> pics = new ArrayList<String>();
pics.add("/app/agentUpload/uploadFile/2213532144710014199/legalUrl1.jpg");
pics.add("F:/hhh/legalUrl.jpg");
pics.add("F:/legalUrl.jpg");
pics.add("F:\\legalUrl.jpg");
// 这个list第一位装路径,第二位是文件名
List<String[]> result = new ArrayList<String[]>();
String regEx = "([\\s\\w+:]*?/?(/.+/)?)((\\w+)\\.(\\w+))$";
Pattern p = Pattern.compile(regEx);
for (String path : pics) {
// 如果路径是\ 则替换成/
path = path.replace('\\', '/');
Matcher m = p.matcher(path);
// 查看是否匹配到
if (m.matches()) {
String[] s = new String[3];
// 打印效果
System.out.println("group-0:"+m.group(0));
System.out.println("group-1:"+m.group(1));
System.out.println("group-2:"+m.group(2));
System.out.println("group-3:"+m.group(3));
System.out.println("group-4:"+m.group(4));
System.out.println("group-5:"+m.group(5));
System.out.println("---------------------");
// 获取路径和文件名
s[0] = m.group(1);
s[1] = m.group(3);
s[2] = m.group(4);
result.add(s);
} else {
continue;
}
}
//return result;
}
结果如下:
group-0:/app/agentUpload/uploadFile/2213532144710014199/legalUrl1.jpg
group-1:/app/agentUpload/uploadFile/2213532144710014199/
group-2:/app/agentUpload/uploadFile/2213532144710014199/
group-3:legalUrl1.jpg
group-4:legalUrl1
group-5:jpg
group-0:F:/hhh/legalUrl.jpg
group-1:F:/hhh/
group-2:/hhh/
group-3:legalUrl.jpg
group-4:legalUrl
group-5:jpg
group-0:F:/legalUrl.jpg
group-1:F:/
group-2:null
group-3:legalUrl.jpg
group-4:legalUrl
group-5:jpg
group-0:F:/legalUrl.jpg
group-1:F:/
group-2:null
group-3:legalUrl.jpg
group-4:legalUrl
group-5:jpg
正则:
([\s\w+:]*?/?(/.+/)?)((\w+)\.(\w+))$