La méthode lookingAt() recherche des occurrences dans une zone délimitée par la méthode region(), de la chaîne de caractères cible. La mise en correspondance commence toujours au début de cette zone.
Les zones délimitées par la méthode region() apparaissent dans la version JDK 1.5.
Matcher zone = recherche.region(6, 12);
Par défaut, une zone concerne la totalité de la chaîne de caractères cible. La définition d'une zone nécessite d'invoquer la méthode region() et de lui passer des valeurs entières précisant ses limites.
Exemple [voir]Matcher zone = recherche.region(7, 16); if(zone.lookingAt()){ System.out.println("Une occurrence a été trouvée entre " + zone.regionStart() + " et " + zone.regionEnd()); //... }
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Regard { public static void main(String[] args) { Pattern modele = Pattern.compile("a.c"); Matcher regard = modele.matcher("abcxxxabcxxxabcxxx"); regard.region(6, 16); regarder(regard); regard.reset(); regard.usePattern(Pattern.compile("^a.c.*$", Pattern.MULTILINE)); regarder(regard); } public static void regarder(Matcher regard) { String regexp = regard.pattern().pattern(); if(regard.lookingAt()){ System.out.println("Une occurrence a été trouvée entre " + regard.regionStart() + " et " + regard.regionEnd()); String chaine = regard.group(); int debut = regard.start(); int fin = regard.end(); System.out.println("Modèle : " + regexp); System.out.println("Occurrence : " + chaine); System.out.println("Début : " + debut); System.out.println("Fin : " + fin + "\n"); } else { System.out.println("Aucune correspondance n'a pu être " + "trouvée pour l'expression " + regexp + "\n"); } } } |