ค้นพบความมหัศจรรย์ของการค้นหา 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 ของโค้ดด้านบนนี้:

ผลลัพธ์ที่เน้นของการค้นหา Regex ในรูปแบบ HTML

การพิมพ์ผลการค้นหา

รหัส C# ต่อไปนี้มีสองวิธีในการนำเสนอผลการค้นหาของคุณ

  1. เน้นคำที่พบทั้งหมด
  2. พิมพ์ในรูปแบบที่อ่านและวิเคราะห์ได้
// การเน้นและพิมพ์ผลการค้นหา 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
...

การได้รับใบอนุญาตฟรีหรือการทดลองใช้ฟรี

ใบอนุญาตฟรี

รับ ใบอนุญาตชั่วคราว ฟรีเพื่อสำรวจห้องสมุดนี้โดยไม่มีข้อจำกัด

ทดลองฟรี

คุณสามารถ ดาวน์โหลดรุ่นทดลองใช้ฟรี ได้จากส่วนการดาวน์โหลด

.NET API สำหรับการค้นหาภายในไฟล์และโฟลเดอร์

บทสรุป

ในบทความนี้ เราได้พิจารณาความมหัศจรรย์ของการค้นหา RegEx เพื่อค้นหาคำทั้งหมดที่มีรูปแบบเฉพาะในเอกสารข้อความต่างๆ เช่น ไฟล์ DOCX, PDF และ TXT ในหลายๆ โฟลเดอร์โดยใช้ C# หลังจากนั้น เรานำเสนอผลการค้นหาโดยเน้นคำที่ค้นหาและพิมพ์ในรูปแบบที่อ่านง่าย

สำหรับรายละเอียดที่ครอบคลุมเกี่ยวกับ API ผู้อ่านควรดู เอกสารประกอบ

หากมีคำถามหรือพูดคุยเพิ่มเติมสามารถส่งไปที่ ฟอรั่ม ได้โดยตรง

ดูสิ่งนี้ด้วย