import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

/** Petit exemple pour illustrer les principales operations de la
 * classe Matcher et leur comportement.
 */

public class Regex {

    private static void imprimer( String nom, String val ) {
	System.out.println( nom + "=" + ( val == null ? null : "'" + val + "'" ) );
    }

    public static void main( String[] args ) throws IOException {
	Pattern patron;
	Matcher matcher;

	//
	System.out.println( "Exemple 1" );
	patron = Pattern.compile( "a([a-zA-Z]+(\\d*))b(\\s*)c" );
	matcher = patron.matcher( "Bonjour abcbc687bc XXX" );

	matcher.find();
	imprimer( "group()", matcher.group() );
	System.out.println( "groupCount() = " + matcher.groupCount() );
	
	imprimer( "group(1)", matcher.group(1) );
	imprimer( "group(2)", matcher.group(2) );
	imprimer( "group(3)", matcher.group(3) );

	//
	System.out.println();

	//
	System.out.println( "Exemple 2" );
	patron = Pattern.compile( "a([a-zA-Z]+(\\d*))b(\\s+)?c" );
	matcher = patron.matcher( "Bonjour abcbc687bc XXX" );

	matcher.find();
	imprimer( "group()", matcher.group() );
	System.out.println( "groupCount() = " + matcher.groupCount() );
	
	imprimer( "group(1)", matcher.group(1) );
	imprimer( "group(2)", matcher.group(2) );
	imprimer( "group(3)", matcher.group(3) );
    }
}
