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