חיפוש Regex באמצעות C# .NET

גלה את הקסם של חיפוש regex פרוגרמטי! בעולם הקידוד, ביטויים רגולריים הם כמו קודים סודיים שעוזרים לנו למצוא מידע ספציפי בטקסט. מאמר זה יראה לך כיצד לחפש לפי regex ב-C# כדי לחפש מסמכים בפורמטים שונים של קבצים בצורה חכמה.

.NET API עבור Regex Search במסמכים לפי Regex

עבור חיפוש Regex, נשתמש בממשק API של GroupDocs.Search for .NET. זה מאפשר לנו לחפש טקסט בתוך קבצים בפורמטים שונים בתיקיות רק על ידי מתן תבנית הביטוי הרגולרי. ספרייה זו מאפשרת לנו לחפש טקסט באופן פרוגרמטי במגוון רחב של פורמטים של קבצים, כגון מסמכי Word, גיליונות אלקטרוניים, מצגות, קובצי PDF, קובצי סימון, ספרים אלקטרוניים, הודעות דואר אלקטרוני, מסמכי One Note וארכיוני ZIP.

לרשימה מעמיקה של פורמטי קבצים נתמכים, עיין בתיעוד המקיף.

יש לך אפשרות לתפוס את קובצי ה-DLL או את תוכנית ההתקנה של MSI מ סעיף ההורדות, או שאתה יכול להתקין את ה-API באפליקציית NET שלך באמצעות NuGet.

כיצד לחפש בקבצים לפי Regex באמצעות C#

בצע את השלבים הבאים כדי לבצע חיפוש regex במספר קבצים בפורמטים שונים של קבצים בתוך תיקיות באמצעות C#: מאוחר יותר תוכל ליצור בקלות את קובצי הפלט המודגשים של HTML עבור כל מסמך שנמצא.

  • צור אינדקס על ידי מתן נתיב לתיקיה.
  • הוסף את הנתיב של תיקיית האב עבור ספריית החיפוש לאינדקס שנוצר.
  • הגדר את שאילתת החיפוש של הביטוי הרגולרי.
  • בצע את החיפוש בשיטת החיפוש כדי לקבל את תוצאות החיפוש.
  • עכשיו אתה יכול לחזור על SearchResults כדי ליצור פלט כרצונך.

הביטוי הרגולרי המשמש בקוד המוזכר להלן מזהה את כל המילים בעלות תווים חוזרים עוקבים כמו; הוסיף, עץ, וראה. קוד C# הבא מבצע את החיפוש המהיר על ידי ביטוי רגיל במספר קבצים בפורמטים שונים של קבצים בתיקיות.

// חפש לפי RegEx במספר קבצים על פני תיקיות מרובות באמצעות C#

// יצירת תיקיית אינדקס והוספה של תיקיית המסמך אליה
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

// הכן את השאילתה והחיפוש של Regex
// הרקס כאן נועד לזהות את כל המילים שיש להן תווים חוזרים ברציפות.
string query = "^(.)\\1{1,}"; 
SearchResult result = index.Search(query);

כאן הדגשתי את תוצאות החיפוש הרגולרי של הקוד לעיל:

תוצאות מודגשות של חיפוש Regex בפורמט HTML

הדפסת תוצאות חיפוש

קוד C# הבא מספק שתי דרכים להציג את תוצאות החיפוש שלך.

  1. הדגש את כל המילים שנמצאו.
  2. הדפס בפורמט קריא וניתן לניתוח
// הדגשה והדפסה של תוצאות חיפוש Regex עבור כל המסמכים
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);
        // הדפסת מונחים שנמצאו
        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
...

קבלת רישיון חינם או ניסיון חינם

רישיון חינם

השג רישיון זמני בחינם כדי לחקור את הספרייה הזו ללא מגבלות.

ניסיון חינם

אתה יכול להוריד את גרסת הניסיון ללא תשלום מקטע ההורדות.

.NET API לחיפוש בתוך קבצים ותיקיות

סיכום

במאמר זה, בדקנו את הקסם של חיפוש RegEx כדי למצוא את כל המילים בעלות דפוס מסוים בתוך מסמכים מבוססי טקסט שונים כמו קובצי DOCX, PDF ו-TXT על פני מספר תיקיות באמצעות C#. לאחר מכן, הצגנו את תוצאות החיפוש על ידי הדגשת מילות החיפוש ועל ידי הדפסתן בפורמט קריא.

לפרטים מקיפים על ה-API, מומלץ לקוראים לעיין בתיעוד.

כל פניה או דיון נוסף ניתן להפנות ל[פורום] הזמין 7.


ראה גם