اكتشف سحر استخدام التعبيرات العادية للبحث في كود 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 في الكود المقدم:
طباعة نتائج البحث
يوفر كود Java التالي طريقتين لعرض نتائج البحث:
- تسليط الضوء على جميع الكلمات المكتشفة.
- اطبع النتائج بتنسيق يسهل قراءته وتحليله.
// تسليط الضوء على نتائج بحث 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
...
الحصول على ترخيص مجاني أو نسخة تجريبية مجانية
رخصة مجانية
احصل على ترخيص مؤقت مجانًا لاستكشاف هذه المكتبة دون قيود.
تجربة مجانية
يمكنك تنزيل النسخة التجريبية المجانية من قسم التنزيلات.
خاتمة
في هذه المقالة، استكشفنا أساسيات بحث Regex لتحديد الكلمات ذات الأنماط المحددة في مجموعة متنوعة من المستندات النصية مثل ملفات DOCX وPDF وTXT عبر مجلدات متعددة باستخدام Java. وبعد ذلك، قمنا بعرض نتائج البحث من خلال إبراز الكلمات المحددة وطباعتها بتنسيق واضح.
للحصول على فهم شامل لواجهة برمجة التطبيقات (API)، ننصح القراء باستكشاف الوثائق ومرجع واجهة برمجة التطبيقات.
يمكن طرح أي أسئلة أو مزيد من المناقشات في المنتدى.