有一段文本的格式是“次要信息.=我想要的1|PM=/我想要的2/|QK=/我想要的3/|ND=/我想要的4”
如何设计正则表达式进行匹配,分别截取出我4段我想要的串?

解决方案 »

  1.   

    String str = "次要信息.=我想要的1|PM=/我想要的2/|QK=/我想要的3/|ND=/我想要的4";
    Pattern pattern = Pattern.compile("^.*=(.*)\\|.*/(.*)/\\|.*/(.*)/\\|.*/(.*)$");
    Matcher matcher = pattern.matcher(str);
    matcher.find();

    for(int i=1; i<=matcher.groupCount(); i++){
    System.out.println(matcher.group(i));
    }
      

  2.   


    String str = "次要信息.=我想要的1|PM=/我想要的2/|QK=/我想要的3/|ND=/我想要的4";
    Pattern pattern = Pattern.compile("\\.=(.+?)\\|PM=/(.+?)/\\|QK=/(.+?)/\\|ND=/(.+)");
    Matcher matcher = pattern.matcher(str);
    while(matcher.find()){
    System.out.println(matcher.group(1));
    System.out.println(matcher.group(2));
    System.out.println(matcher.group(3));
    System.out.println(matcher.group(4));
    }
      

  3.   

    for example
    String s = "次要信息.=我想要的1|PM=/我想要的2/|QK=/我想要的3/|ND=/我想要的4";
    Pattern p = Pattern.compile("[^=]*=(/)?(.*?)([|]|/|$)");
    Matcher m = p.matcher(s);
    while (m.find()) {
        System.out.println(m.group(2));
    }