字符串如下:
C:\TEST\\ADMINISTRATOR\\3\\C:\TEST\TEMP\T2_TEMP.TXT\\SUPPORT\\2\\
含义:
C:\TEST\\ADMINISTRATOR\\3\\
说明:C:\TEST文件或者文件夹
ADMINISTRATOR用户
3用户级别
要求能够用java解析出以上三个元素?
C:\TEST\\ADMINISTRATOR\\3\\C:\TEST\TEMP\T2_TEMP.TXT\\SUPPORT\\2\\
含义:
C:\TEST\\ADMINISTRATOR\\3\\
说明:C:\TEST文件或者文件夹
ADMINISTRATOR用户
3用户级别
要求能够用java解析出以上三个元素?
public class Test3 {
public static void main(String[] args) {
String reg = "^(.*?)\\\\([^\\\\]+)\\\\([^\\\\]+)\\\\$";
String str = "C:\\TEST\\ADMINISTRATOR\\3\\";
System.out.println("文件或目录:\t" + str.replaceAll(reg, "$1"));
System.out.println("用户:\t\t" + str.replaceAll(reg, "$2"));
System.out.println("级别:\t\t" + str.replaceAll(reg, "$3"));
System.out.println("-------------------------");
str = "C:\\TEST\\TEMP\\T2_TEMP.TXT\\SUPPORT\\2\\";
System.out.println("文件或目录:\t" + str.replaceAll(reg, "$1"));
System.out.println("用户:\t\t" + str.replaceAll(reg, "$2"));
System.out.println("级别:\t\t" + str.replaceAll(reg, "$3"));
}
}
Matcher matcher = pattern.matcher("C:\\TEST\\ADMINISTRATOR\\3\\");
if (matcher.matches()) {
if (matcher.group().length() > 0) {
System.out.println("文件或文件夹:" + matcher.group(1));
System.out.println("用户:" + matcher.group(2));
System.out.println("用户级别:" + matcher.group(3));
}
}
都不是很满足LZ的要求(LZ要求的是一个字符串,由多个数据,无间隔组合在一起)
所以改了一下:
public class Test3 {
public static void main(String[] args) {
String reg = "^(.*?)\\\\([^\\\\]+)\\\\([^\\\\]+)\\\\$";
String regDriverName = "(?=[a-zA-Z]:)";
String str = "C:\\TEST\\ADMINISTRATOR\\3\\C:\\TEST\\TEMP\\T2_TEMP.TXT\\SUPPORT\\2\\"; String[] array = str.split(regDriverName);
for (int i = 0; i < array.length; i++) {
if (array[i].equals("")) {
continue;
}
System.out.println(i + " -----------------------");
System.out.println("文件:\t" + array[i].replaceAll(reg, "$1"));
System.out.println("用户:\t" + array[i].replaceAll(reg, "$2"));
System.out.println("级别:\t" + array[i].replaceAll(reg, "$3"));
}
}
}