String str = "a+b-c+d-e";
        String regx = "([a-z]+)(([\\+-])([a-z]+))+";        如何将str中的变量和运算符号通过正则表达式regex分别提取出来放入数组中?       
        

解决方案 »

  1.   

    答:参考代码:String reg1="(?<=[a-zA-Z])(?=[+-])|(?<=[+-])(?=[a-zA-Z])";
        String[] rs2="a+b-c+d-e".split(reg1);
        for(String ss:rs2)
        {
         System.out.println(ss);
        }运行结果:
    a
    +
    b
    -
    c
    +
    d
    -
    e
      

  2.   

    楼上的的代码可以获取我需要的数据,能否解释一下这个正则表达式"(?<=[a-zA-Z])(?=[+-])|(?<=[+-])(?=[a-zA-Z])"的作用。另外,如何通过Matcher,find,group等方法获取需要的数据?
      

  3.   

    答:通过Matcher,find,group等方法获取需要的数据String re="([a-zA-Z]+|[+-])";
        Matcher m=Pattern.compile(re).matcher("a+b-c+d-e");  
        while(m.find())
        {
         System.out.println(m.group());
        }