Appariement de motifs avec Regex
Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 47 sur 59.
Les classes Pattern et Matcher fournissent des outils puissants pour les opérations regex en Java. Tout d'abord, voyons comment les utiliser :
Créez un pattern en utilisant Pattern.compile() :
Pattern pattern = Pattern.compile("cat");
// Crée un motif pour trouver "cat"Créez un matcher pour votre texte :
String text = "The cat and dog";
Matcher matcher = pattern.matcher(text);
// Creates a matcher for the textMaintenant, vous pouvez trouver les correspondances avec matcher.find() :
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}Après l'exécution du code ci-dessus, la sortie est : Found at: 4
Comprendre les méthodes :
<b>matcher.find()</b>- Recherche la prochaine occurrence du motif dans le texte- Retourne
truesi une correspondance est trouvée - Retourne
falses'il n'y a plus de correspondances - C'est pourquoi nous l'utilisons dans une boucle
while- pour trouver toutes les occurrences
- Retourne
<b>matcher.start()</b>- Retourne l'indice de départ (position) de la dernière correspondance trouvée parfind()- Dans notre exemple, "cat" commence à l'indice 4 dans "The cat and dog"
- Doit être appelé après un
find()réussi
Exemple avec plusieurs correspondances :
Pattern pattern = Pattern.compile("cat");
Matcher matcher = pattern.matcher("cat and cat");
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}
// Output:
// Found at: 0
// Found at: 8Défi
FacileCréez une méthode nommée findWords qui prend deux arguments :
- Une chaîne de caractères (
text) dans laquelle rechercher - Une chaîne de caractères (
word) à trouver
La méthode doit :
- Utiliser Pattern et Matcher pour trouver toutes les occurrences du mot
- Retourner une chaîne contenant les positions où le mot a été trouvé
- Les positions doivent être séparées par des espaces
Les messages de retour doivent être :
- Si une entrée est null : retourner "Invalid input"
- Si le mot n'est pas trouvé : retourner "Not found"
- Si trouvé : retourner les positions (par ex., "4 10 15")
Aide-mémoire
Les classes Pattern et Matcher fournissent des outils puissants pour les opérations sur les expressions régulières en Java.
Créez un pattern en utilisant Pattern.compile() :
Pattern pattern = Pattern.compile("cat");
// Creates a pattern to find "cat"Créez un matcher pour votre texte :
String text = "The cat and dog";
Matcher matcher = pattern.matcher(text);
// Creates a matcher for the textTrouvez les correspondances en utilisant matcher.find() :
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}Méthodes clés :
<b>matcher.find()</b>- Recherche la prochaine occurrence du motif- Retourne
truesi trouvé,falsesi plus de correspondances - Utilisez dans une boucle pour trouver toutes les occurrences
- Retourne
<b>matcher.start()</b>- Retourne l’indice de début de la dernière correspondance trouvée- Appelez après un
find()réussi
- Appelez après un
Essayez vous-même
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static String findWords(String text, String word) {
// Écrivez votre code ici
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String word = scanner.nextLine();
if (text.equals("null")) text = null;
if (word.equals("null")) word = null;
System.out.println(findWords(text, word));
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap5HashSet Partie 2
Math - Union des HashSetsMath - Intersection des HashSetsMath - Différence d'ensemblesMath - Différence symétriqueSous-ensembles et super-ensemblesItération sur les ensembles8Opérations avancées sur les chaînes
Bases de StringBuilderIntroduction à StringBufferBases des expressions régulièresAppariement de motifs avec RegexTokenizer de chaînesFormatage avancé des chaînes3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots