חקור את הקסם של שימוש בביטויים רגולריים לחיפוש בקוד ה-Java שלך! בעולם הקידוד, חשבו על ביטויים רגולריים כמו קודים סודיים שעוזרים לנו למצוא מידע ספציפי בטקסט. מאמר זה ילמד אותך את היסודות של חיפוש עם ביטויים רגולריים ב-Java, כך שתוכל לחפש בצורה חכמה במסמכים בפורמטים שונים של קבצים בתיקיות.
Java API עבור Regex Search במסמכים על ידי Regex
לצורך ביצוע חיפוש Regex, נשתמש בממשק API של GroupDocs.Search for Java. עם ממשק API זה, אנו יכולים לחפש טקסט ספציפי בקבצים בפורמטים שונים בתיקיות, רק על ידי מתן דפוס הרקס. כלי זה מאפשר לנו לחפש טקסט בסוגים שונים של קבצים, כמו מסמכי Word, גיליונות אלקטרוניים, מצגות, קבצי PDF, קובצי סימון, ספרים אלקטרוניים, הודעות דואר אלקטרוני, מסמכי One Note וארכיוני ZIP, הכל בצורה פרוגרמטית.
כדי לקבל רשימה מפורטת של פורמטי קבצים נתמכים, עיין בתיעוד מפורט.
יש לך שתי אפשרויות לקבל את קובץ ה-JAR: הורד אותו מסעיף ההורדות, או שלבו את תצורות המאגר והתלות העדכניות ביותר של Maven ישירות לתוך יישומי ה-Java שלך.
חיפוש בקבצים עם Regex באמצעות Java
להלן השלבים הפשוטים כיצד לבצע חיפוש ביטויים רגילים במספר קבצים בפורמטים שונים בתוך תיקיות באמצעות Java. לאחר מכן, תוכל ליצור ללא מאמץ קובצי פלט HTML מודגשים עבור כל מסמך שנמצא.
- התחל על ידי יצירת אינדקס על ידי ציון נתיב התיקיה.
- הוסף את הנתיב של התיקיה הראשית שבה תרצה לחפש באינדקס שיצרת זה עתה.
- הגדר את שאילתת החיפוש של הביטוי הרגולרי.
- השתמש בשיטת החיפוש כדי להפעיל את החיפוש ולהשיג את התוצאות.
- כעת, אתה יכול לעבור על תוצאות חיפוש ולהפיק את הפלט הרצוי לפי העדפותיך.
הביטוי הרגולרי בקוד שלהלן מזהה מילים עם תווים חוזרים ברציפות, כגון מסכים, התקשר ובקרוב. קוד ג’אווה זה עורך חיפוש מהיר תוך שימוש ב-Regex בקבצים שונים בפורמטים שונים בתוך תיקיות שונות.
// Regex חפש במספר קבצים בתיקיות באמצעות Java
// יצירת תיקיית אינדקס והוספה של תיקיית המסמך אליה
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");
// הכן את השאילתה והחיפוש של Regex
// הרקס כאן נועד לזהות את כל המילים שיש להן תווים חוזרים ברציפות.
String query = "^(.)\\1{1,}";
SearchResult result = index.search(query);
להלן, הדגשתי את תוצאות החיפוש הרגולרי בקוד שסופק:
הדפסת תוצאות חיפוש
קוד 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, הקוראים מוזמנים לחקור את תיעוד ו-API Reference.
לכל שאלה או דיון נוסף ניתן להתייחס בפורום.