字符串如下:
C:\TEST\\ADMINISTRATOR\\3\\C:\TEST\TEMP\T2_TEMP.TXT\\SUPPORT\\2\\
含义:
C:\TEST\\ADMINISTRATOR\\3\\
说明:C:\TEST文件或者文件夹
      ADMINISTRATOR用户
      3用户级别
要求能够用java解析出以上三个元素?

解决方案 »

  1.   


    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"));
    }
    }
      

  2.   

            Pattern pattern = Pattern.compile("^(.*)\\\\([^\\\\]+)\\\\([^\\\\]+)\\\\$");
            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));
                }
            }
      

  3.   

    又看了一下,觉得1楼的我,和2楼的朋友
    都不是很满足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"));
    }
    }
    }
      

  4.   

    谢谢楼上两位热心,你们都分解了问题:C:\TEST\\ADMINISTRATOR\\3\\C:\TEST\TEMP\T2_TEMP.TXT\\SUPPORT\\2\\ C:\TEST\\ADMINISTRATOR\\3\\C:\TEST\TEMP\T2_TEMP.TXT\\SUPPORT\\2\\ 是要求分一个长串?