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:

Zvýrazněné výsledky Regex Search ve formátu HTML

Tisk výsledků hledání

Následující kód C# poskytuje dva způsoby prezentace výsledků vyhledávání.

  1. Zvýrazněte všechna nalezená slova.
  2. 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í.

.NET API pro vyhledávání v souborech a složkách

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.

Viz také