如题求一个能提取小括号中内容的正则表达式,小弟新手初学,搞了半天也没搞明白.例子:asdfkjasldjkf(alsjk)df;lasdfljkasdfl;jkasdl;kj(asdfljk)fasdkjhasdf;只要能把上面这句话  小括号中的英文字符  提取出来就行...
希望大家多多帮忙...

解决方案 »

  1.   


     好象有个字符串截取函数(substring())
    你自己翻一下Java帮助文档看怎么个用法
      

  2.   

    \([^)]*\) 提出来的是(alsjk)  (asdfljk)  不是英文字符吧
      

  3.   

    Pattern p = Pattern.compile("\\(.*?\\)");
    Matcher m = p.matcher("asdfkjasldjkf(alsjk)df;lasdfljkasdfl;jkasdl;kj(asdfljk)fasdkjhasdf; 
    ");
    while(m.find()){
        System.out.println(m.group());
    }
      

  4.   

    Pattern p = Pattern.compile("\\((.*?)\\)");
    Matcher m = p.matcher("asdfkjasldjkf(alsjk)df;lasdfljkasdfl;jkasdl;kj(asdfljk)fasdkjhasdf; 
    ");
    while(m.find()){
        System.out.println(m.group(1));
    }
      

  5.   


    String si = "asdfkjasldjkf(alsjk)df;lasdfljkasdfl;jkasdl;kj(asdfljk)fasdkjhasdf";
    Pattern sip = Pattern.compile("(?s)(?:.s*?)?\\((.*?)?\\)(.*?)?"); 
    Matcher mp = sip.matcher(si);
    while(mp.find()){
    System.out.println(mp.group(1));
    }
      

  6.   

    或者这样:String si = "asdfkjasldjkf(alsjk)df;lasdfljkasdfl;jkasdl;kj(asdfljk)fasdkjhasdf";
    Pattern sip = Pattern.compile("\\(([^\\)]*)\\)"); 
    Matcher mp = sip.matcher(si);
    while(mp.find()){
    System.out.println(mp.group(1));
    }