اكتشف سحر البحث العادي البرمجي! في عالم البرمجة، تشبه التعبيرات العادية الرموز السرية التي تساعدنا في العثور على معلومات محددة في النص. ستوضح لك هذه المقالة كيفية البحث باستخدام regex في C# للبحث في المستندات بتنسيقات الملفات المختلفة بذكاء.

.NET API للبحث عن Regex في المستندات بواسطة Regex

بالنسبة لبحث Regex، سنستخدم واجهة برمجة التطبيقات GroupDocs.Search for .NET. يتيح لنا ذلك البحث عن نص داخل ملفات ذات تنسيقات مختلفة عبر المجلدات فقط من خلال توفير نمط regex. تمكننا هذه المكتبة من البحث برمجيًا عن النص في مجموعة واسعة من تنسيقات الملفات، مثل مستندات Word وجداول البيانات والعروض التقديمية وملفات PDF وملفات التوصيف والكتب الإلكترونية ورسائل البريد الإلكتروني ومستندات One Note وأرشيفات ZIP.

للحصول على قائمة تفصيلية بتنسيقات الملفات المدعومة، راجع الوثائق الشاملة.

لديك خيار إما الحصول على ملفات DLL أو مثبت MSI من قسم التنزيلات، أو يمكنك تثبيت واجهة برمجة التطبيقات (API) في تطبيق .NET الخاص بك باستخدام NuGet.

كيفية البحث في الملفات عن طريق Regex باستخدام C#

اتبع هذه الخطوات لإجراء بحث regex في ملفات متعددة بتنسيقات ملفات مختلفة داخل المجلدات باستخدام C#: يمكنك لاحقًا بسهولة إنشاء ملفات إخراج HTML المميزة لكل مستند تم العثور عليه.

  • قم بإنشاء فهرس عن طريق توفير مسار المجلد.
  • أضف مسار المجلد الأصلي لدليل البحث إلى الفهرس الذي تم إنشاؤه.
  • تحديد استعلام البحث regex.
  • قم بتنفيذ البحث باستخدام طريقة البحث للحصول على نتائج البحث.
  • يمكنك الآن التكرار على SearchResults لإنشاء نتيجة كما تريد.

يحدد التعبير العادي المستخدم في الكود المذكور أدناه جميع الكلمات التي تحتوي على أحرف متكررة متتالية مثل؛ وأضاف، والخشب، وانظر. يقوم كود C# التالي بإجراء بحث سريع عن طريق regex في ملفات متعددة بتنسيقات ملفات مختلفة عبر المجلدات.

// البحث عن طريق RegEx في ملفات متعددة عبر مجلدات متعددة باستخدام C#

// إنشاء مجلد فهرس وإضافة مجلد المستندات إليه
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

// قم بإعداد استعلام Regex والبحث
// Regex هنا هو تحديد جميع الكلمات التي تحتوي على أحرف متكررة متتالية.
string query = "^(.)\\1{1,}"; 
SearchResult result = index.Search(query);

لقد قمت هنا بتسليط الضوء على نتائج بحث regex للكود أعلاه:

النتائج المميزة لبحث 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)، يُنصح القراء بالرجوع إلى الوثائق.

يمكن توجيه أية استفسارات أو مناقشات إضافية إلى المنتدى المتاح.

أنظر أيضا