select today('yyyyMMdd',@op_time@),yes('yyyyMMdd',@op_time1@)  from a  where b = @values@ and C = @day1@ and D = @values@
需要匹配出的结果应该是 @values@ ,@day1@ , @values@   而我不希望也把@op_time@和@op_time1@也匹配出来。求高手帮忙

解决方案 »

  1.   

    b = (.*) and C = (.*) and D = (.*)
      

  2.   

    如果我需要匹配的结果是  b = @values@ and C = @day1@ and D = @values@  呢?应该怎么写  有可能以后的字符串由b变成另一个字符 或者是C变成另一个字符
      

  3.   

    如果你需要匹配的结果是  b = @values@ and C = @day1@ and D = @values@ 
    那么正则表达式如下:where (.*)
      

  4.   


    String s="select today('yyyyMMdd',@op_time@),yes('yyyyMMdd',@op_time1@)  from a  where b = @values@ and C = @day1@ and D = @values@";
    Matcher m=Pattern.compile("(?>=\\s*)(@.*?@)").matcher(s);
    while(m.find()){
    System.out.println(m.group(1));
    }