สำรวจความมหัศจรรย์ของการใช้นิพจน์ทั่วไปสำหรับการค้นหาในโค้ด Java ของคุณ! ในโลกของการเขียนโค้ด ลองนึกถึงนิพจน์ทั่วไป เช่น รหัสลับที่ช่วยให้เราค้นหาข้อมูลเฉพาะในข้อความได้ บทความนี้จะสอนพื้นฐานการค้นหาด้วยนิพจน์ทั่วไปใน Java เพื่อให้คุณสามารถค้นหาเอกสารในรูปแบบไฟล์ต่างๆ ทั่วทั้งโฟลเดอร์ได้อย่างชาญฉลาด
Java API สำหรับการค้นหา Regex ในเอกสารโดย Regex
สำหรับการค้นหา Regex เราจะใช้ GroupDocs.Search for Java API ด้วย API นี้ เราสามารถค้นหาข้อความที่ต้องการในไฟล์รูปแบบต่างๆ ทั่วทั้งโฟลเดอร์ได้ เพียงแค่กำหนดรูปแบบ regex ให้กับมัน เครื่องมือนี้ช่วยให้เราค้นหาข้อความในไฟล์ประเภทต่างๆ เช่น เอกสาร Word, สเปรดชีต, การนำเสนอ, ไฟล์ PDF, ไฟล์มาร์กอัป, eBooks, ข้อความอีเมล, เอกสาร One Note และไฟล์เก็บถาวร ZIP ทั้งหมดนี้อยู่ในรูปแบบการเขียนโปรแกรม
หากต้องการดูรายละเอียดรูปแบบไฟล์ที่รองรับ โปรดดู เอกสารประกอบโดยละเอียด
คุณมีสองตัวเลือกในการรับไฟล์ JAR: ดาวน์โหลดจาก ส่วนการดาวน์โหลด หรือรวม การกำหนดค่า Maven ที่เก็บข้อมูลล่าสุดและการอ้างอิง ลงในแอปพลิเคชัน Java ของคุณโดยตรง
ค้นหาไฟล์ด้วย Regex โดยใช้ Java
ต่อไปนี้เป็นขั้นตอนง่ายๆ ในการค้นหา regex ในไฟล์หลายไฟล์ที่มีรูปแบบต่างกันภายในโฟลเดอร์ที่ใช้ Java หลังจากนั้น คุณสามารถสร้างไฟล์เอาต์พุต HTML ที่เน้นสีสำหรับเอกสารแต่ละฉบับได้อย่างง่ายดาย
- เริ่มต้นด้วยการสร้าง ดัชนี โดยระบุเส้นทางโฟลเดอร์
- เพิ่มเส้นทางของโฟลเดอร์หลักที่คุณต้องการค้นหาในดัชนีที่คุณเพิ่งสร้างขึ้น
- ตั้งค่าคำค้นหา regex
- ใช้วิธีการค้นหาเพื่อดำเนินการค้นหาและรับผลลัพธ์
- ตอนนี้คุณสามารถผ่าน SearchResults และสร้างผลลัพธ์ที่ต้องการตามความต้องการของคุณ
regex ในโค้ดด้านล่างตรวจพบคำที่มีอักขระซ้ำติดต่อกัน เช่น ตกลง โทร และเร็วๆ นี้ โค้ด 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 ขอแนะนำให้ผู้อ่านสำรวจ เอกสารประกอบ และ การอ้างอิง API
หากมีคำถามหรือข้อหารือเพิ่มเติมสามารถพูดคุยได้ใน ฟอรั่ม