例如,从 LDldDiskSpaceUsed/(1-LDldFreeSpacePercent) 中将LDldDiskSpaceUsed,LDldFreeSpacePercent 提取出来。其中LDldDiskSpaceUsed,LDldFreeSpacePercent 只是举个例子,不是固定单词。谢谢

解决方案 »

  1.   


    String regex="^([a-zA-Z]+)/\(1-([a-zA-Z]+)\)";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher("LDldDiskSpaceUsed/(1-LDldFreeSpacePercent)");
    if(m.find()){
    String s1 = m.group(1);//LDldDiskSpaceUsed
    String s2 = m.group(2);//LDldFreeSpacePercent
    }
     
      

  2.   


    public class Opert { public static void main(String[] args) {
    String str = "xdasd-dsa-(dsa";//获取表达式
    String str1 = "[^A-Za-z]+";//匹配非字母字符
    String str2 = str.replaceAll(str1, " ");//把非字母字符替换为空格
    String[] str3 = str2.split(" ");//用空格切割字符串,得到单词数组
    for (int i = 0; i < str3.length; i++) {
    System.out.println(str3[i]);
    }
    }
    }刚写的 应该就是你想要的,注释也写的很全。
      

  3.   

    是了~~多谢楼上啊~~不过为啥我用正则匹配总是不行呢·String regex = "([a-zA-Z]+)";   Pattern p = Pattern.compile(regex);  Matcher m = p.matcher(inter_enfield);
     int s = m.groupCount();  for(int i=0;i<s;i++){
     System.out.println(m.group(i)); 
     }
     
      

  4.   


    String str = "xdasd-dsa-(dsa";// 获取表达式
    String str1 = "[^A-Za-z]+";// 匹配非字母字符
    String[] str2 = str.split(str1);// 切割字符串,得到单词数组改的简单点,去掉中间的步骤。
      

  5.   

    不知道这个行不行
    import java.util.regex.*;
    public class MyRegex2 {

    public static void main(String[] args) {
    String s="LDldDiskSpaceUsed/(1-LDldFreeSpacePercent)";
    Matcher m=Pattern.compile("\\w+(?=\\/)|\\w+(?=\\))").matcher(s);
    String s1 = null,s2=null;
    if(m.find())
    s1=m.group();
    if(m.find())
    s2=m.group();

    System.out.println(s1);
    System.out.println(s2);

    }
    }
      

  6.   

    Matcher m = p.matcher(inter_enfield);
    你写的关键是这一句有问题,建议你去看下API中matcher()方法。