جادوی استفاده از عبارات منظم برای جستجو در کد Java خود را کشف کنید! در دنیای کدنویسی، به عبارات منظم مانند کدهای مخفی فکر کنید که به ما کمک می کنند اطلاعات خاصی را در متن پیدا کنیم. این مقاله اصول اولیه جستجو با عبارات منظم در Java را به شما آموزش می دهد، بنابراین می توانید به طور هوشمندانه اسناد را در قالب های مختلف فایل در پوشه ها جستجو کنید.

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

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

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

شما دو گزینه برای دریافت فایل JAR دارید: آن را از بخش دانلودها دانلود کنید، یا آخرین مخزن و تنظیمات وابستگی Maven را مستقیماً در برنامه های Java خود وارد کنید.

جستجو در فایل ها با Regex با استفاده از جاوا

در اینجا مراحل ساده نحوه انجام جستجوی regex در چندین فایل با فرمت های مختلف در پوشه ها با استفاده از Java آورده شده است. پس از آن، می‌توانید بدون زحمت فایل‌های خروجی HTML برجسته‌شده را برای هر سند واقع شده ایجاد کنید.

  • با ایجاد یک Index با مشخص کردن مسیر پوشه شروع کنید.
  • مسیر پوشه اصلی را که می‌خواهید در فهرستی که ایجاد کرده‌اید، جستجو کنید، اضافه کنید.
  • عبارت جستجوی regex را تنظیم کنید.
  • از روش جستجو برای اجرای جستجو و به دست آوردن نتایج استفاده کنید.
  • اکنون، می‌توانید از طریق SearchResults بروید و خروجی مورد نظر را مطابق با اولویت‌های خود ایجاد کنید.

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

// Regex چندین فایل را در پوشه ها با استفاده از Java جستجو کنید

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

// Regex Query و Search را آماده کنید
// Regex در اینجا برای شناسایی همه کلماتی است که دارای نویسه های تکراری متوالی هستند.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

در زیر، من نتایج جستجوی regex را در کد ارائه شده هایلایت کرده ام:

نتایج برجسته شده جستجوی Regex در قالب HTML

چاپ نتایج جستجو

کد Java زیر دو روش برای نمایش نتایج جستجو ارائه می دهد:

  1. تمام کلمات کشف شده را برجسته کنید.
  2. نتایج را در قالبی چاپ کنید که خواندن و تجزیه و تحلیل آسان باشد.
// برجسته کردن و چاپ نتایج جستجوی Regex برای همه اسناد
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // چاپ اصطلاحات یافت شده
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}
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
...

دریافت مجوز رایگان یا آزمایشی رایگان

مجوز رایگان

برای کاوش در این کتابخانه بدون محدودیت، مجوز موقت را به صورت رایگان دریافت کنید.

امتحان رایگان

می توانید از بخش دانلودها آزمایشی رایگان را دانلود کنید.

Java API برای جستجو در فایل ها و پوشه ها

نتیجه

در این مقاله، ما اصول شگفت‌انگیز جستجوی Regex را برای یافتن کلمات با الگوهای خاص در طیف متنوعی از اسناد مبتنی بر متن مانند فایل‌های DOCX، PDF و TXT در چندین پوشه با استفاده از Java بررسی کردیم. پس از آن، نتایج جستجو را با برجسته کردن کلمات شناسایی شده و چاپ آنها در قالبی واضح به نمایش گذاشتیم.

برای درک کامل API، خوانندگان تشویق می شوند که اسناد و مرجع API را بررسی کنند.

هر گونه سوال یا بحث بیشتر را می توان در فروم مطرح کرد.


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