有表达式(((indicator4-indicator3)>0)?"上升"+(indicator5-indicator3+indicator11):"下降"+(indicator7-indicator10-indicator12)),我想获得里面所有的indicator开头的内容
indicator4、indicator3、indicator5、indicator11等等

解决方案 »

  1.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
    public static void main(String[] args) {
    String str = "(((indicator4-indicator3)>0)?\"上升\"+(indicator5-indicator3+indicator11):\"下降\"+(indicator7-indicator10-indicator12))";
    Pattern p = Pattern.compile("indicator\\d*");
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }

    }
    }
      

  2.   

    3ks hudie1234567,能去掉重复的内容吗?
      

  3.   

    把结果放在一个HashSet,然后取出
      

  4.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
        public static void main(String[] args) {
            String str = "(((indicator4-indicator3)>0)?\"上升\"+(indicator5-indicator3+indicator11):\"下降\"+(indicator7-indicator10-indicator12))";
            Pattern p = Pattern.compile("indicator\\d*");
            Matcher m = p.matcher(str);
            List<String> list = new ArrayList<String>();
            while(m.find()) {
                String s = m.gourp();
                if (!list.contains(s)) {list.add(s);}
            }
            System.out.println(list);
        }
    }