جادوی جستجوی regex برنامه‌ای را کشف کنید! در دنیای کدنویسی، عبارات منظم مانند کدهای مخفی هستند که به ما کمک می کنند اطلاعات خاصی را در متن پیدا کنیم. این مقاله به شما نشان می دهد که چگونه با regex در C# جستجو کنید تا اسناد با فرمت های مختلف فایل را به طور هوشمند جستجو کنید.

NET API برای جستجوی Regex در اسناد توسط Regex

برای Regex Search، از GroupDocs.Search for .NET API استفاده می کنیم. این به ما امکان می دهد فقط با ارائه الگوی regex، متن را در فایل هایی با فرمت های مختلف در پوشه ها جستجو کنیم. این کتابخانه به ما این امکان را می‌دهد که به صورت برنامه‌نویسی متن را در طیف گسترده‌ای از فرمت‌های فایل، مانند اسناد Word، صفحات گسترده، ارائه‌ها، فایل‌های PDF، فایل‌های نشانه‌گذاری، کتاب‌های الکترونیکی، پیام‌های ایمیل، اسناد One Note و بایگانی‌های ZIP جستجو کنیم.

برای یک لیست عمیق از فرمت های فایل پشتیبانی شده، به اسناد جامع مراجعه کنید.

شما این گزینه را دارید که DLL یا نصب کننده MSI را از بخش دانلودها بگیرید، یا می توانید API را با استفاده از NuGet در برنامه .NET خود نصب کنید.

نحوه جستجو در فایل ها با استفاده از Regex با استفاده از سی شارپ

این مراحل را برای انجام جستجوی regex در چندین فایل با فرمت‌های فایل مختلف در پوشه‌ها با استفاده از C# دنبال کنید: بعداً می‌توانید به راحتی فایل‌های خروجی HTML برجسته‌شده را برای هر سند یافت شده ایجاد کنید.

  • با ارائه مسیر پوشه، یک Index ایجاد کنید.
  • مسیر پوشه والد دایرکتوری جستجو را به فهرست ایجاد شده اضافه کنید.
  • عبارت جستجوی regex را تعریف کنید.
  • جستجو را با استفاده از روش جستجو برای دریافت نتایج جستجو انجام دهید.
  • اکنون می توانید روی SearchResults تکرار کنید تا خروجی دلخواه ایجاد کنید.

Regex مورد استفاده در کد زیر، تمام کلماتی را که دارای کاراکترهای تکراری متوالی هستند مانند؛ اضافه شده، چوب، و ببینید. کد C# زیر جستجوی سریع توسط regex را در چندین فایل با فرمت های مختلف فایل در پوشه ها انجام می دهد.

// جستجو با RegEx در چندین فایل در چندین پوشه با استفاده از C#

// ایجاد یک پوشه فهرست و اضافه کردن پوشه سند به آن
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

// Regex Query و Search را آماده کنید
// 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، به خوانندگان توصیه می شود به اسناد مراجعه کنند.

هرگونه سؤال یا بحث اضافی را می توان به فروم موجود هدایت کرد.

همچنین ببینید