用 "any character except one" 表达  String pattern = "\<tplt\>.*\<[^/]";

解决方案 »

  1.   

    或把第二个'<'作为结束条件:String pattern = "\<tplt\>([^<])*";
      

  2.   

    好像不行啊!加入我的文字中间包含HTML标签就有问题的了
    begintext<tplt>11<b>1</b></tplt>middletext<tplt>222</tplt>endtext,我需要取出的是以<tplt>开头,</tptl>结束,中间不包含</tplt>的文字,网上看到?!好像可以做这个事情,不过我不会用,请帮帮我!
      

  3.   

    楼上的,应该是"any character except one word",这个如何表达
      

  4.   

    在 java 1.4中, 正则表达式被加入标准库中。
    java.util.regex查一下sun的 jdk 的联机帮助,关于类pattern, 有详细的关于正则表达式的解释。
      

  5.   

    考虑了一晚上,用其他方法好像很难, 只好用 split 做了。
    public class Test { private static void test() {

    String input = "begintext<tplt>11<b>1</b></tplt>middletext<tplt>222</tplt>endtext";
    Pattern p = Pattern.compile("</tplt>");
    String[] array = p.split(input, -1);
    for(int i = 0; i < array.length -1; i++ ) {
    System.out.println(array[i]);
    Pattern pattern = Pattern.compile(".*<tplt>(.*)"); 
    Matcher m = pattern.matcher(array[i]);
    boolean b = m.matches();
    System.out.println(b);
    if(b == true) {
    System.out.println(m.group(1));
    }
    }
    } public static void main(String[] args) {
    test();
    }
    }
      

  6.   

    暂时解决了:<tplt>.*?</tplt>,不过不支持嵌套!