现在有一个字符串“马五↑(3)↓(1)盒↓(8)↑(3)井↓(8)↑(3)油↓(8)↑(3)WELLID↓(2)↑(3)”,能否有办法把这个字符串进行分割变为马五↑(3)↓(1)
盒↓(8)↑(3)
井↓(8)↑(3)
油↓(8)↑(3)
WELLID↓(2)↑(3)先谢谢大家!!!!

解决方案 »

  1.   


    public static void main(String[] args) {
    String str = "马五↑(3)↓(1)盒↓(8)↑(3)井↓(8)↑(3)油↓(8)↑(3)WELLID↓(2)↑(3)";
    String arr[] = str.split("(?<=\\(\\d\\).\\(\\d\\))");
    for(String s : arr){
    System.out.println(s);
    }
    }
      

  2.   


    Pattern p = Pattern.compile("[\u4E00-\u9FFF a-z A-Z]*(↑|↓)\\(\\d\\)(↑|↓)\\(\\d\\)");
    Matcher m = p.matcher("马五↑(3)↓(1)盒↓(8)↑(3)井↓(8)↑(3)油↓(8)↑(3)WELLID↓(2)↑(3)"); while (m.find()) {
    System.out.println(m.group());
    }试试看
      

  3.   

    (?<=exp) 匹配exp后面的位置 
    没想到还可以这么用。一直以为只能matcher。
    不知道split按什么分隔?
      

  4.   

    2楼规则我觉得可以参照这里
    http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html