Explorez la magie de l’utilisation d’expressions régulières pour effectuer des recherches dans votre code Java ! Dans le monde du codage, pensez aux expressions régulières comme les codes secrets qui nous aident à trouver des informations spécifiques dans le texte. Cet article vous apprendra les bases de la recherche avec des expressions régulières en Java, afin que vous puissiez rechercher intelligemment des documents dans différents formats de fichiers dans des dossiers.

API Java pour la recherche Regex dans les documents par Regex

Pour effectuer une recherche Regex, nous utiliserons l’API GroupDocs.Search for Java. Avec cette API, nous pouvons rechercher du texte spécifique dans des fichiers de différents formats dans des dossiers, simplement en lui donnant le modèle regex. Cet outil nous permet de rechercher du texte dans différents types de fichiers, tels que des documents Word, des feuilles de calcul, des présentations, des fichiers PDF, des fichiers de balisage, des livres électroniques, des messages électroniques, des documents One Note et des archives ZIP, le tout de manière programmatique.

Pour obtenir une liste détaillée des formats de fichiers pris en charge, consultez la documentation détaillée.

Vous disposez de deux options pour obtenir le fichier JAR : téléchargez-le à partir de la section des téléchargements ou intégrez les dernières configurations Maven du référentiel et des dépendances directement dans vos applications Java.

Recherche dans des fichiers avec Regex à l’aide de Java

Voici les étapes simples pour effectuer une recherche d’expressions régulières dans plusieurs fichiers de formats différents dans des dossiers à l’aide de Java. Ensuite, vous pouvez facilement créer des fichiers de sortie HTML en surbrillance pour chaque document localisé.

  • Commencez par créer un Index en spécifiant le chemin du dossier.
  • Ajoutez le chemin du dossier principal dans lequel vous souhaitez rechercher dans l’index que vous venez de créer.
  • Configurez la requête de recherche regex.
  • Utilisez la méthode de recherche pour lancer la recherche et obtenir les résultats.
  • Maintenant, vous pouvez parcourir SearchResults et générer le résultat souhaité selon vos préférences.

L’expression régulière dans le code ci-dessous détecte les mots contenant des caractères répétés consécutifs, tels que d’accord, appeler et bientôt. Ce code Java effectue une recherche rapide à l’aide d’expressions régulières dans divers fichiers de différents formats dans différents dossiers.

// Regex Rechercher plusieurs fichiers dans des dossiers à l'aide de Java

// Créer un dossier d'index et y ajouter le dossier du document
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Préparer la requête et la recherche Regex
// Regex ici consiste à identifier tous les mots ayant des caractères répétés consécutifs.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Ci-dessous, j’ai mis en évidence les résultats de la recherche d’expressions régulières dans le code fourni :

Résultats mis en évidence de la recherche Regex au format HTML

Impression des résultats de recherche

Le code Java suivant propose deux méthodes pour afficher vos résultats de recherche :

  1. Mettez en surbrillance tous les mots découverts.
  2. Imprimez les résultats dans un format facile à lire et à analyser.
// Mise en surbrillance et impression des résultats de recherche Regex pour tous les documents
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // Impression des termes trouvés
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}
Document: English.txt
Occurrences: 83
	Field: content
	Occurrences: 82
		acceptance          1
		added               1
		agreeable           1
		agreed              1
		all                 4
		appearance          1
		assurance           1
...
===========================================
Document: Lorem ipsum.docx
	Occurrences: 945
...
Field: content
	Occurrences: 939
		accumsan            39
		class               7
		commodo             40
		convallis           38
		dignissim           35
		efficitur           46
		fringilla           40
		habitasse           2
		laoreet             27
		massa               63
		mattis              31
...

Obtenir une licence gratuite ou un essai gratuit

License gratuite

Obtenez gratuitement une licence temporaire pour explorer cette bibliothèque sans contraintes.

Essai gratuit

Vous pouvez télécharger l’essai gratuit depuis la section téléchargements.

API Java pour la recherche dans les fichiers et dossiers

Conclusion

Dans cet article, nous avons exploré les bases des merveilles de recherche Regex pour localiser des mots avec des modèles spécifiques dans diverses gammes de documents texte tels que les fichiers DOCX, PDF et TXT dans plusieurs dossiers à l’aide de Java. Par la suite, nous avons présenté les résultats de la recherche en mettant en évidence les mots identifiés et en les imprimant dans un format clair.

Pour une compréhension approfondie de l’API, les lecteurs sont encouragés à explorer la documentation et la Référence API.

Toutes les questions ou discussions supplémentaires peuvent être abordées dans le forum.

Voir également