การค้นหาและแทนที่ข้อความ

C#:
การค้นหาและแทนที่ข้อความ

วิธีการ:

C# ทำให้การจัดการข้อความง่ายดาย ด้านล่างนี้, ลองดูเมธอด string.Replace เพื่อแลกเปลี่ยนคำ

using System;

public class Program
{
    public static void Main()
    {
        string phrase = "Hello, World!";
        string updatedPhrase = phrase.Replace("World", "C#");
        
        Console.WriteLine(updatedPhrase); // ผลลัพธ์: Hello, C#!
    }
}

ไม่ยากเลยใช่ไหม? แต่ถ้าเราต้องการที่จะไม่สนใจตัวพิมพ์เล็กพิมพ์ใหญ่ หรือแทนที่เฉพาะคำทั้งหมดเท่านั้น? Regex มาช่วยได้:

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        string phrase = "Apples grow on trees. apple pies are tasty.";
        string pattern = "\\bapple\\b"; // \b คือขอบเขตของคำใน Regex
        string replacement = "Orange";
        
        string updatedPhrase = Regex.Replace(phrase, pattern, replacement, RegexOptions.IgnoreCase);

        Console.WriteLine(updatedPhrase); // ผลลัพธ์: Oranges grow on trees. Orange pies are tasty.
    }
}

การศึกษาลึกล้ำ

ในอดีต, การจัดการสตริงเป็นเรื่องยุ่งยาก C เป็นทุกสิ่งที่เรามี, และมันหมายถึงการจัดการกับอาร์เรย์ของอักขระและการวนซ้ำด้วยมือ C# ให้ของขวัญกับเรา: การจัดการสตริงอย่างง่ายดาย

ถ้า string.Replace หรือ Regex.Replace ไม่ตอบโจทย์, เรายังมีตัวเลือกอื่นๆ สำหรับข้อความขนาดใหญ่หรือรูปแบบที่ซับซ้อน, พิจารณาเขียน parser ที่กำหนดเองหรือใช้ไลบรารีเช่น Antlr

Regex มีประสิทธิภาพในการจับคู่รูปแบบแต่อาจช้า เมื่อประสิทธิภาพเป็นสิ่งสำคัญและคุณพร้อมที่จะหาข้อมูลละเอียด, วัดและเปรียบเทียบกับ StringBuilder สำหรับการทดแทนขนาดใหญ่และซ้ำๆ

ดูเพิ่มเติม

  • Microsoft Docs เกี่ยวกับ string.Replace
  • คลาส Regex ของ .NET สำหรับรูปแบบที่ซับซ้อนยิ่งขึ้น
  • ตรวจสอบ Antlr สำหรับการแยกวิเคราะห์ที่ซับซ้อน: The ANTLR Mega Tutorial