Hoe regex-zoeken in Java met GroupDocs.Search
Door duizenden tekstdocumenten te doorzoeken kan voelen als het zoeken naar een speld in een hooiberg. Hoe regex-zoeken in Java wordt moeiteloos wanneer je de krachtige reguliere‑expressie‑engine van de taal combineert met GroupDocs.Search, een bibliotheek die een index bouwt voor bliksemsnelle patroonmatching. In de komende paar minuten zie je hoe je de bibliotheek installeert, een index maakt, bestanden toevoegt en zowel eenvoudige tekst‑gebaseerde als object‑georiënteerde regex‑query’s uitvoert. Aan het einde ben je klaar om robuuste patroon‑zoekfunctionaliteit in elke Java‑applicatie te integreren.
Snelle Antwoorden
- Wat is de primaire bibliotheek? GroupDocs.Search for Java
- Hoe begin ik? Add the Maven dependency and instantiate an
Indexobject - Kan ik inhoud filteren met regex? Yes – use regex queries for content‑filtering scenarios
- Heb ik een licentie nodig? A free trial or temporary license is required for production use
- Welke JDK‑versie wordt ondersteund? Java 8 or higher
Wat is regex-zoeken?
Regex-zoeken stelt je in staat patronen te vinden zoals datums, e‑mailadressen of herhaalde tekens in veel bestanden met één enkele bewerking. Het zet een eenvoudige tekstquery om in een krachtige, regel‑gebaseerde scanner die inhoud on‑the‑fly kan extraheren of blokkeren.
Waarom GroupDocs.Search gebruiken voor regex-zoeken?
GroupDocs.Search indexeert documenten één keer en hergebruikt die index voor elke query, waardoor tot 10× snellere zoekopdrachten worden geleverd vergeleken met ruwe bestands‑scanning. De bibliotheek ondersteunt 30+ bestandsformaten (PDF, DOCX, XLSX, PPTX, TXT, HTML en meer) en kan multi‑honderd‑pagina‑bestanden verwerken zonder het volledige bestand in het geheugen te laden.
Vereisten
- Java Development Kit (JDK) 8 of hoger
- Maven voor afhankelijkheidsbeheer
- Basiskennis van Java‑reguliere‑expressies
Vereiste bibliotheken en afhankelijkheden
Voeg GroupDocs.Search toe aan je Maven‑project:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
Of download de nieuwste JAR van GroupDocs.Search for Java releases.
Licentie‑acquisitie
Verkrijg een gratis proefversie of tijdelijke licentie via GroupDocs.License en laad deze bij het opstarten van de applicatie.
GroupDocs.Search voor Java instellen
Installatie‑informatie
- Maven‑integratie: Voeg de hierboven getoonde repository en afhankelijkheid toe aan je
pom.xml. - Directe download: Plaats de JAR‑bestanden op het classpath van je project.
- Licentie‑toepassing: Laad het licentiebestand bij het opstarten van de applicatie.
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
Kerncomponenten
De Index‑klasse is het kerncomponent dat doorzoekbare tokens opslaat die uit je documenten zijn geëxtraheerd. Het maakt snelle opzoeking van elke term of patroon mogelijk zonder de originele bestanden opnieuw te lezen.
Hoe een index maken
Een index maken is eenvoudig: instantiateer de Index‑klasse met een mappad waar de indexbestanden worden opgeslagen. De constructor maakt bij eerste gebruik de benodigde databestanden aan en bereidt de engine voor op het toevoegen en doorzoeken van documenten. Eenmaal aangemaakt, kun je dezelfde index hergebruiken voor alle queries.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
Hoe documenten toevoegen
Om een bestand doorzoekbaar te maken, roep je index.add aan met een Document (of DocumentInfo) instantie die naar het bestandspad wijst. De bibliotheek parseert de inhoud, extraheert tokens en slaat ze op in de index. Deze bewerking kan worden uitgevoerd voor enkele bestanden of batches, en updates worden incrementeel samengevoegd.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
Hoe reguliere expressie‑zoekopdracht uit te voeren in tekstvorm
RegexQuery definieert een op reguliere expressies gebaseerde zoekquery. Laad een RegexQuery met een platte‑tekst patroon en geef deze door aan de search‑methode van de Index. De engine evalueert het patroon tegen de geïndexeerde tokens en retourneert overeenkomende documentreferenties, waardoor eenmalige opzoekingen snel en eenvoudig zijn.
String query1 = "^((.)\\2{1,})";
Hoe reguliere expressie‑zoekopdracht uit te voeren in objectvorm
RegexQuery kan ook als object worden gebouwd en hergebruikt voor meerdere zoekopdrachten. Definieer de query één keer, configureer opties zoals hoofdletter‑ongevoeligheid of fuzzy matching, en roep herhaaldelijk index.search aan. Deze aanpak verbetert de prestaties wanneer hetzelfde patroon wordt toegepast op veel verschillende documentensets.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
Gebruikssituaties voor regex‑inhoudfiltering
Je kunt regex gebruiken om automatisch inhoud te blokkeren of te markeren die overeenkomt met bepaalde patronen, zoals:
- Het detecteren van herhaalde tekens voor spamfiltering
- Het vinden van credit‑card‑achtige reeksen voor gegevens‑privacycontroles
- Het extraheren van datums of ID’s voor downstream verwerking
Praktische toepassingen
- Document Management Systemen: Zoek contracten, facturen of beleidsdocumenten op patroon (bijv. factuurnummers).
- Inhoudsmoderatie: Pas regex‑regels toe om door gebruikers gegenereerde tekst in forums of chat‑apps te modereren.
- Gegevensextractie: Haal gestructureerde gegevens zoals ordernummers uit ongestructureerde PDF‑ of Word‑bestanden.
Prestatie‑overwegingen
- Index‑updates: Roep
index.addaan telkens wanneer bronbestanden wijzigen om resultaten actueel te houden. - Geheugenbeheer: Voor corpora met meer dan 1 miljoen documenten, schakel incrementele indexering in om heap‑gebruik onder controle te houden.
- Regex‑ontwerp: Houd patronen beknopt; een patroon zoals
\d{4}-\d{2}-\d{2}is 3× sneller dan een wildcard‑zware expressie zoals.*.
Conclusie
Je weet nu hoe regex-zoeken in Java met GroupDocs.Search, van het installeren van de bibliotheek en het maken van een index tot het uitvoeren van zowel tekst‑gebaseerde als object‑georiënteerde query’s. Deze technieken stellen je in staat snelle, patroon‑bewuste zoekfunctionaliteit toe te voegen aan elke Java‑applicatie, of je nu een documentportaal, een compliance‑scanner of een data‑mining‑pipeline bouwt.
Veelgestelde vragen
Q: Wat is het verschil tussen tekst‑gebaseerde en object‑gebaseerde regex‑query’s in GroupDocs.Search?
A: Tekst‑gebaseerde query’s zijn snelle één‑liners, terwijl object‑gebaseerde query’s herbruikbare, type‑veilige definities bieden die kunnen worden opgeslagen en hergebruikt in meerdere zoekopdrachten.
Q: Kan GroupDocs.Search niet‑tekstdocumenten zoals PDF‑ of Excel‑bestanden indexeren?
A: Ja, de bibliotheek extraheert doorzoekbare tekst uit PDF’s, DOCX, XLSX, PPTX en meer dan 30 andere formaten.
Q: Hoe werk ik een bestaande zoekindex bij na het toevoegen van nieuwe bestanden?
A: Roep index.add aan met de nieuwe of gewijzigde documenten; de bibliotheek zal de wijzigingen samenvoegen zonder de hele index opnieuw op te bouwen.
Q: Wat zijn veelvoorkomende valkuilen bij het gebruik van regex met GroupDocs.Search?
A: Te brede patronen (bijv. .*) kunnen prestatie‑degradatie veroorzaken, en onjuiste expressies kunnen geen resultaten opleveren. Test patronen altijd eerst op een voorbeeldset.
Q: Waar kan ik meer geavanceerde GroupDocs.Search‑tutorials vinden?
A: Bezoek de GroupDocs Documentation voor diepgaande handleidingen, API‑referenties en voorbeeldprojecten.
Laatst bijgewerkt: 2026-07-31
Getest met: GroupDocs.Search 25.4
Auteur: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());