这就是搂住的结帖风格??????
http://expert.csdn.net/Expert/topic/2837/2837721.xml?temp=.52232
√正则表达式高手请进(要真正的高手,难哦)~~~~~~~~ 给100分:((eww) 100 45 3-15 15:16 管理 
?正则表达式高手请进(要真正的高手,难哦)~~~~~~~~ 给100分:((eww) 100 5 3-12 20:56 管理 
√给100分~~~请教正则表达式的问题???~~~~~~~~,很难哦:((eww) 100 12 12-21 12:42 管理 
?给100分~~~请教正则表达式的问题???~~~~~~~~,很难哦:((eww) 100 4 12-1 11:17 管理 
√正则表达式问题给100分!~~~~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!!!!!(eww) 100 3 10-28 15:13 管理 从去年问 到今年,值得佩服...

解决方案 »

  1.   

    jdk上显示的原因是:
    Thrown when a stack overflow occurs because an application recurses too deeply
    改用这个把,姑且能满足你的需要,也许下一个版本的jdk就不会出那样的问题了: p =
    Pattern.compile(
    "<!--\\s*BEGIN\\s*"
    + strk
    + ".*<!--\\s*END\\s*"
    + strk
    + "\\s*(-->)" ,
    Pattern.DOTALL);
    m = p.matcher(value); if (m.find()) {
    String result = value.substring(m.start(), m.end());
    System.out.println(result);
    }
      

  2.   

    另一种可行方式是:
    定义两个Matcher mBeginNews,mEndNews.
    然后找到[mBeginNew.end(),mEndNews.start()]也可以的到你想要的东西,我保证它不会StackOverFlow
      

  3.   

    Apache 的网站上有正则表达式的API,用那个试试
      

  4.   

    不是没人解决,是他钻进牛角尖了,非要找一个自认为完美的方法。
    实际上,使用正则表达式那么StackOverFlow就在所难免!
    一般情况中没有发生StackOverFlow只是因为一般所处理的字符串复杂度不够高而已。
      

  5.   

    告诉你吧。用Jregex库,绝对不会出现这种问题。赫赫。