C#:
Tìm kiếm và thay thế văn bản
Làm thế nào:
C# làm cho việc thao tác văn bản trở nên khá đơn giản. Dưới đây, hãy xem phương thức string.Replace
để hoán đổi từ.
using System;
public class Program
{
public static void Main()
{
string phrase = "Hello, World!";
string updatedPhrase = phrase.Replace("World", "C#");
Console.WriteLine(updatedPhrase); // Kết quả: Hello, C#!
}
}
Không phải là khoa học tên lửa, đúng không? Nhưng giả sử chúng ta muốn bỏ qua chữ hoa chữ thường hoặc thay thế chỉ từ nguyên? Regex sẽ giải cứu:
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 là một ranh giới từ trong Regex
string replacement = "Orange";
string updatedPhrase = Regex.Replace(phrase, pattern, replacement, RegexOptions.IgnoreCase);
Console.WriteLine(updatedPhrase); // Kết quả: Oranges grow on trees. Orange pies are tasty.
}
}
Sâu hơn
Ngày xưa, thao tác chuỗi là một rắc rối. C là tất cả những gì chúng ta có, và nó có nghĩa là phải xử lý mảng ký tự và lặp thủ công. C# đã tặng chúng ta một món quà: xử lý chuỗi dễ dàng.
Nếu string.Replace
hoặc Regex.Replace
không đáp ứng được, chúng ta có lựa chọn khác. Đối với văn bản lớn hoặc mẫu phức tạp, cân nhắc viết một parser tùy chỉnh hoặc sử dụng thư viện như Antlr.
Regex mạnh mẽ cho khớp mẫu nhưng có thể chậm. Nếu hiệu suất là quan trọng và bạn quan tâm đến chi tiết, đo lường và so sánh với StringBuilder
cho thay thế lớn, lặp đi lặp lại.
Xem thêm
- Tài liệu Microsoft về
string.Replace
- Lớp
Regex
của .NET cho mẫu phức tạp hơn - Xem Antlr cho việc phân tích cú pháp phức tạp: Hướng dẫn Mega của ANTLR