Objevte kouzlo programatického vyhledávání regulárních výrazů! Ve světě kódování jsou regulární výrazy jako tajné kódy, které nám pomáhají najít konkrétní informace v textu. Tento článek vám ukáže, jak vyhledávat podle regulárního výrazu v C#, abyste mohli chytře vyhledávat dokumenty různých formátů souborů.
.NET API pro Regex Search in Documents by Regex
Pro Regex Search použijeme GroupDocs.Search for .NET API. To nám umožňuje prohledávat text v souborech různých formátů napříč složkami pouhým poskytnutím vzoru regulárního výrazu. Tato knihovna nám umožňuje programově vyhledávat text v široké škále formátů souborů, jako jsou dokumenty Word, tabulky, prezentace, soubory PDF, soubory značek, elektronické knihy, e-mailové zprávy, dokumenty One Note a archivy ZIP.
Podrobný seznam podporovaných formátů souborů naleznete v komplexní dokumentaci.
Máte možnost buď stáhnout DLL nebo MSI instalační program z části ke stažení, nebo můžete nainstalovat API do své aplikace .NET pomocí NuGet.
Jak vyhledávat v souborech podle Regex pomocí C#
Chcete-li provést vyhledávání regulárních výrazů ve více souborech různých formátů souborů ve složkách pomocí jazyka C#, postupujte takto: Později můžete snadno vygenerovat zvýrazněné výstupní soubory HTML pro každý nalezený dokument.
- Vytvořte Index zadáním cesty ke složce.
- Přidejte cestu k nadřazené složce pro vyhledávací adresář do vytvořeného indexu.
- Definujte vyhledávací dotaz regulárního výrazu.
- Chcete-li získat výsledky vyhledávání, proveďte vyhledávání pomocí metody Hledat.
- Nyní můžete iterovat na SearchResults a vytvořit výstup, jak chcete.
Regulární výraz použitý v níže uvedeném kódu identifikuje všechna slova s po sobě jdoucími opakovanými znaky jako; přidáno, dřevo, a viz. Následující kód C# provádí rychlé vyhledávání podle regulárního výrazu ve více souborech různých formátů souborů napříč složkami.
// Vyhledávání podle RegEx ve více souborech ve více složkách pomocí C#
// Vytvoření indexové složky a přidání složky dokumentu do ní
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");
// Připravte Regex Query and Search
// Regex zde má identifikovat všechna slova, která mají jakékoli po sobě jdoucí opakované znaky.
string query = "^(.)\\1{1,}";
SearchResult result = index.Search(query);
Zde jsem zvýraznil výsledky vyhledávání regulárních výrazů výše uvedeného kódu:
Tisk výsledků hledání
Následující kód C# poskytuje dva způsoby prezentace výsledků vyhledávání.
- Zvýrazněte všechna nalezená slova.
- Tiskněte v čitelném a analyzovatelném formátu
// Zvýraznění a tisk výsledků hledání podle regulárního výrazu pro všechny dokumenty
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, indexFolder + "/Highlight" + i + ".html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
index.Highlight(document, highlighter);
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\t\tField: " + field.FieldName);
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
// Tisk nalezených termínů
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
}
Console.WriteLine("===========================================");
}
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
...
Získání bezplatné licence nebo bezplatné zkušební verze
Bezplatná licence
Získejte zdarma dočasnou licenci k prozkoumání této knihovny bez omezení.
Zkušební verze zdarma
Můžete si stáhnout bezplatnou zkušební verzi v sekci ke stažení.
Závěr
V tomto článku jsme se podívali na kouzlo vyhledávání RegEx, abychom našli všechna slova s určitým vzorem v různých textových dokumentech, jako jsou soubory DOCX, PDF a TXT, v několika složkách pomocí C#. Poté jsme výsledky vyhledávání prezentovali zvýrazněním hledaných slov a jejich vytištěním v čitelném formátu.
Úplné podrobnosti o rozhraní API čtenářům doporučujeme nahlédnout do dokumentace.
Jakékoli dotazy nebo další diskuse můžete směřovat na dostupné fórum.