有没有大虾尝试写一两个example,好让我们参考一下,融会贯通。

解决方案 »

  1.   

    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        { Pattern p=Pattern.compile("(public|private|protect){0,1}\\s{0,1}(class|void)\\s[a-zA-Z0-9_\\-]{1,}");
    Matcher m=p.matcher("public class myclass{ ...; } public void mymethod{ ...; }");

    StringBuffer sbs=new StringBuffer();
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }
        }}试下,我没有严格测试过,只是写了个字符串来解析。
      

  2.   

    更改了一下import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        { Pattern p=Pattern.compile("(public|private|protect){0,1}\\s{0,1}(class|void)\\s[ a-zA-Z0-9(_)\\-]{1,}");
    Matcher m=p.matcher("public class myclass{ ...; } public void mymethod(String a){ ...; }");

    StringBuffer sbs=new StringBuffer();
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }
        }}
      

  3.   

    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        { Pattern p=Pattern.compile("(public|private|protected){0,1}\\s{0,1}(class|void)\\s[ a-zA-Z0-9(_)\\-]{1,}");
    Matcher m=p.matcher("public class myclass extends jj{ ...; } public void mymethod(String a){ ...; }");
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }
        }}就这样先,自己修改下,下班了。。
      

  4.   

    谢谢了,可否顺便帮忙写个判断条件头的正则表达式,例如if,do...while,while,switch等等。给一个例子让我举一反三吧,谢谢,我对正则表达式是最头痛的了。写完后一定再另外加分。谢谢!
      

  5.   

    取类与方法头:
    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        { Pattern p=Pattern.compile("(public|private|protected){0,1}\\s{0,1}(class|void)\\s[ a-zA-Z0-9(_)\\-]{1,}");
    Matcher m=p.matcher("public class myclass extends jj{ ...; } public void mymethod(String a){ ...; }");
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }
        }}取条件语句:
    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        {
    Pattern p=Pattern.compile("(if|do|while|switch){1}[ ]{0,}[(_\\-)a-zA-Z0-9=\\%\\*\\&\\& ]{1,}");
    Matcher m=p.matcher("if( a==b ){ ...; } while( a== b ){ ...; }do( a%b=4 ){ ...; } ");
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }    }}
      

  6.   

    取类与方法头:
    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        { Pattern p=Pattern.compile("(public|private|protected){0,1}\\s{0,1}(class|void)\\s[ a-zA-Z0-9(_)\\-]{1,}");
    Matcher m=p.matcher("public class myclass extends jj{ ...; } public void mymethod(String a){ ...; }");
    boolean result=m.find();
    while(result){
    System.out.println(m.group());
    result=m.find();
    }
        }}取条件语句:
    import java.util.regex.*;
    public class pattern
    {
        public static void main(String[] args) throws Exception
        {
    Pattern p=Pattern.compile("(if|do[ ]{0,}\\{|while|switch){1}[ ]{0,}[(_\\-)a-zA-Z0-9=\\%\\*\\&\\& ]{1,}");
    Matcher m=p.matcher("if( a==b ){ ...; } while( a== b ){ ...; }do { ...; }while( a%b=4 ); ");
    boolean result=m.find();
    while(result){
    if( m.group().startsWith("do") ){
    System.out.print(m.group().replaceAll("\\{",""));
    }
    else{
    System.out.println(m.group());
    }
    result=m.find();
    }    }}