import java.util.regex.Matcher; import java.util.regex.Pattern; public class MySuperTestCaseForMyRegex { private static String test_code = "package projet.acceleo.test.parse.parser;" + "\n" + "" + "\n" + "public class JavaParse {" + "\n" + "" + "\n" + " public String code;" + "\n" + "" + "\n" + " public JavaParse(String code) {" + "\n" + " this.code = code;" + "\n" + " }" + "\n" + "" + "\n" + " public void tamere(Mere a, String b) {" + "\n" + " b = b + Integer.toString(a);" + "\n" + " }" + "\n" + "" + "\n" + " public void parse(Int2 pute, int a, String b) {" + "\n" + " b = b + Integer.toString(a);" + "\n" + " }" + "\n" + "" + "\n" + " public void parse(int a, String b) {" + "\n" + " b = b + Integer.toString(a);" + "\n" + " }" + "\n" + "" + "\n" + " public String salope(int a, String b) {" + "\n" + " b = b + Integer.toString(a);" + "\n" + " }" + "\n" + "}"; private static String regex = "\\s*(public|protected|private)\\s+(void|int|String|Int2)\\s+([a-zA-Z0-9]+)\\s*\\(\\s*(void|int|String|Int2)\\s+([a-zA-Z0-9]+){0,1}\\s*(,\\s*(void|int|String|Int2)\\s+([a-zA-Z0-9]+))*\\s*\\)\\s*\\{"; public static void main(String[]args) { System.out.println(test_code); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(test_code); while(matcher.find()) { System.out.println(matcher.group()); } matcher.reset(); for(int i = 1; i < matcher.groupCount(); i++) { System.out.println(matcher.group(i)); i++; } } }