ค้นพบความมหัศจรรย์ของการค้นหา regex แบบเป็นโปรแกรม! ในโลกของการเขียนโค้ด นิพจน์ทั่วไปเป็นเหมือนรหัสลับที่ช่วยให้เราค้นหาข้อมูลเฉพาะในข้อความ บทความนี้จะแสดงวิธีการค้นหาด้วย regex ใน C# เพื่อค้นหาเอกสารในรูปแบบไฟล์ต่างๆ อย่างชาญฉลาด
.NET API สำหรับการค้นหา Regex ในเอกสารโดย Regex
สำหรับการค้นหา Regex เราจะใช้ GroupDocs.Search for .NET API ซึ่งช่วยให้เราสามารถค้นหาข้อความภายในไฟล์รูปแบบต่างๆ ทั่วทั้งโฟลเดอร์ได้เพียงแค่ระบุรูปแบบ regex ไลบรารีนี้ช่วยให้เราสามารถค้นหาข้อความโดยทางโปรแกรมในรูปแบบไฟล์ที่หลากหลาย เช่น เอกสาร Word, สเปรดชีต, การนำเสนอ, ไฟล์ PDF, ไฟล์มาร์กอัป, eBooks, ข้อความอีเมล, เอกสาร One Note และไฟล์เก็บถาวร ZIP
สำหรับรายการเชิงลึกของรูปแบบไฟล์ที่รองรับ โปรดดู เอกสารประกอบที่ครอบคลุม
คุณมีตัวเลือกในการรับ DLL หรือตัวติดตั้ง MSI จาก ส่วนการดาวน์โหลด หรือคุณสามารถติดตั้ง API ลงในแอปพลิเคชัน .NET ของคุณโดยใช้ NuGet
วิธีค้นหาในไฟล์โดย Regex โดยใช้ C#
ทำตามขั้นตอนเหล่านี้เพื่อทำการค้นหา regex ในไฟล์หลายไฟล์ที่มีรูปแบบไฟล์ต่างๆ ภายในโฟลเดอร์โดยใช้ C#: หลังจากนั้น คุณสามารถสร้างไฟล์เอาต์พุต HTML ที่ไฮไลต์สำหรับเอกสารแต่ละฉบับที่พบได้อย่างง่ายดาย
- สร้าง ดัชนี โดยระบุเส้นทางโฟลเดอร์
- เพิ่มเส้นทางของโฟลเดอร์หลักสำหรับไดเร็กทอรีการค้นหาไปยังดัชนีที่สร้างขึ้น
- กำหนดคำค้นหา regex
- ดำเนินการค้นหาโดยใช้วิธีการค้นหาเพื่อรับผลการค้นหา
- ตอนนี้คุณสามารถทำซ้ำใน SearchResults เพื่อสร้างผลลัพธ์ตามที่คุณต้องการ
regex ที่ใช้ในโค้ดที่กล่าวถึงด้านล่างระบุคำทั้งหมดที่มีอักขระซ้ำติดต่อกันเช่น; เพิ่มไม้และดู รหัส C# ต่อไปนี้ทำการค้นหาอย่างรวดเร็วด้วย regex ในไฟล์หลายไฟล์ที่มีรูปแบบไฟล์ต่างกันทั่วทั้งโฟลเดอร์
// ค้นหาโดย RegEx ในหลายไฟล์ในหลาย ๆ โฟลเดอร์โดยใช้ C#
// การสร้างโฟลเดอร์ดัชนีและเพิ่มโฟลเดอร์เอกสารลงไป
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");
// เตรียมการค้นหาและค้นหา Regex
// Regex ในที่นี้คือการระบุคำทั้งหมดที่มีอักขระซ้ำติดต่อกัน
string query = "^(.)\\1{1,}";
SearchResult result = index.Search(query);
ที่นี่ฉันได้เน้นผลการค้นหา regex ของโค้ดด้านบนนี้:
การพิมพ์ผลการค้นหา
รหัส C# ต่อไปนี้มีสองวิธีในการนำเสนอผลการค้นหาของคุณ
- เน้นคำที่พบทั้งหมด
- พิมพ์ในรูปแบบที่อ่านและวิเคราะห์ได้
// การเน้นและพิมพ์ผลการค้นหา Regex สำหรับเอกสารทั้งหมด
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, indexFolder + "/Highlight" + i + ".html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
index.Highlight(document, highlighter);
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\t\tField: " + field.FieldName);
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
// การพิมพ์คำที่พบ
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
}
Console.WriteLine("===========================================");
}
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 ในหลายๆ โฟลเดอร์โดยใช้ C# หลังจากนั้น เรานำเสนอผลการค้นหาโดยเน้นคำที่ค้นหาและพิมพ์ในรูปแบบที่อ่านง่าย
สำหรับรายละเอียดที่ครอบคลุมเกี่ยวกับ API ผู้อ่านควรดู เอกสารประกอบ
หากมีคำถามหรือพูดคุยเพิ่มเติมสามารถส่งไปที่ ฟอรั่ม ได้โดยตรง