xx“aa”bb“cc”yy 取出aa cc
xx“aa“bb”cc”yy 取出aa“bb”cc

解决方案 »

  1.   


    public static void main(String args[]) {
    String regex = "(?<=“).*(?=”)";//你给的例子里双引号是全角,如果是半角刚regex = "(?<=\").*(?=\")";
    Pattern p = Pattern.compile(regex);
    String str = "xx“aa“bb”cc”yy ";
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }

    aa“bb”cc
      

  2.   


    String str = "xx“aa“bb”cc”yy ";
    System.out.println(str.replaceAll("xx(.*)yy","$1"));
      

  3.   

    xx“aa “dd””bb“cc”yy 取出aa “dd” cc 
      

  4.   


    public static void main(String args[]) {
    String regex = "(?<=“)([^“”]*|[^“”]*“.*”[^“”]*)(?=”)";//你给的例子里双引号是全角,如果是半角则用\"替换“和”;
    Pattern p = Pattern.compile(regex);
    String str = "xx“aa“bb”cc”yy ";
    //str = "xx“aa”bb“cc”yy";
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }

    \
    输出:aa“bb”cc
    如果str = xx“aa”bb“cc”yy
    则输出:
    aa
    cc
      

  5.   

    不对
    String str="xx“aa”bb“cc”yy"; 这个我要的是 aa 和cc
      

  6.   

    同样适用
    不过不是aa “dd” cc
    而是:
    aa “dd”
    cc
      

  7.   


    这个还有点缺陷 我有个字符串需要处理 但是不处理引号括起来的
    比如
    str = "xx“aabb“cc”ee“cc”yy"; 我想取出来的是aabb“cc和cc
    str = "xx“aabb“cc“ee“cc”yy"; 我想取出来的是aabb“cc“ee“cc
    str = "xx“aabb“cc”ee”cc”yy"; 我想取出来的是aabb“cc”ee”cc
    有个难点就是有时需要匹配长的有时需要匹配短的
      

  8.   

    str = "xx“aabb“cc“ee“cc”yy"; 像这里面的引号都不成对出现.
    你给出的都是个别例子,并没有说规则,我也无能为力了
      

  9.   

    这个规则很明显啊 但是不好表达
    xx“aa”bb“cc”yy 取出aa和cc 
    xx“aa“bb”cc”yy 取出aa“bb”cc
    xx“aa“bb”“cc”yy 取出aa“bb和cc 因为把cc取出来后“aa“bb”这里还是可以找出一对引号的
    xx“aa“bb““cc”yy 只能取出aa“bb““cc 因为单独把cc拿出来后“aa“bb“这个不成对了可以肯定的是起始是上引号“ 结束是下引号” 中间可以是任意字符包括引号 所以要根据里面的引号情况去匹配 其实规则就是我上面说的目的 有个字符串要处理 双引号括起来的内容不处理 我真的没法表达出这个规则
      

  10.   

    不但要引号括起来的内容不处理而且这个引号还要去掉
    比如
    xx“aa”bb“cc”yy要处理xx bb yy这3串 最后是xxaabbccyy
    xx“aa“bb”cc”yy 处理完xx yy之后变成xxaa“bb”ccyy
      

  11.   

            String regex = "((“[^“”]+)+”(([^“”]+”)+)?)";
            Pattern p = Pattern.compile(regex);
            String str = "xx“aa“bb”cc”yy ";
            str = "xx“aa”bb“cc”yy";
            //str="xx“aabb“cc”ee“cc”yy"; 我想取出来的是aabb“cc和cc 
            //str="xx“aabb“cc“ee“cc”yy"; 我想取出来的是aabb“cc“ee“cc 
            //str="xx“aabb“cc”ee”cc”yy"; 我想取出来的是aabb“cc”ee”cc 
            Matcher m = p.matcher(str);
            while(m.find()) {
                System.out.println(m.group());
            }