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

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

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

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

لديك خياران للحصول على ملف JAR: تنزيله من قسم التنزيلات، أو دمج أحدث تكوينات Maven للمستودع والتبعية مباشرة في تطبيقات Java الخاصة بك.

البحث في الملفات باستخدام Regex باستخدام Java

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

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

يكتشف التعبير العادي الموجود في الكود أدناه الكلمات التي تحتوي على أحرف متكررة متتالية، مثل أوافق، ومكالمة، وقريبًا. يقوم كود Java هذا بإجراء بحث سريع باستخدام regex في ملفات مختلفة بتنسيقات مختلفة داخل مجلدات مختلفة.

// Regex ابحث في ملفات متعددة عبر المجلدات باستخدام Java

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

// قم بإعداد استعلام Regex والبحث
// 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)، ننصح القراء باستكشاف الوثائق ومرجع واجهة برمجة التطبيقات.

يمكن طرح أي أسئلة أو مزيد من المناقشات في المنتدى.


أنظر أيضا