×

Sử dụng Regular Expressions để kiểm tra và xử lý chuỗi trong C#

Regular Expressions (Regex) là một công cụ mạnh mẽ và linh hoạt giúp bạn kiểm tra và xử lý chuỗi trong C#. Chúng cho phép bạn thực hiện các thao tác tìm kiếm, so khớp và thay thế theo mẫu định trước. Dưới đây là một số bước cơ bản và ví dụ về cách sử dụng Regex trong C#.

1. Tạo đối tượng Regex

Để bắt đầu làm việc với Regex, bạn phải tạo một đối tượng Regex từ thư viện System.Text.RegularExpressions. Bạn có thể sử dụng cú pháp sau:

using System.Text.RegularExpressions;

Regex regex = new Regex(pattern);

Trong đó, pattern là chuỗi biểu thức chính quy mà bạn muốn sử dụng.

2. Kiểm tra chuỗi với phương thức IsMatch

Phương thức IsMatch giúp bạn kiểm tra xem chuỗi có khớp với biểu thức chính quy hay không. Phương thức này trả về một giá trị boolean.

string input = "hello123";
string pattern = @"^\w+$";

Regex regex = new Regex(pattern);
bool isValid = regex.IsMatch(input);

Console.WriteLine(isValid); // Output: True

3. Tìm kiếm và trích xuất dữ liệu

Để tìm kiếm và trích xuất dữ liệu trong chuỗi, bạn có thể sử dụng phương thức MatchMatches. Match trả về đối tượng Match đầu tiên khớp với mẫu, trong khi Matches trả về một tập hợp các đối tượng Match.

string input = "The rain in Spain";
string pattern = @"\b\w+ain\b";

Regex regex = new Regex(pattern);
Match match = regex.Match(input);

if (match.Success)
{
    Console.WriteLine(match.Value); // Output: rain
}

foreach (Match m in regex.Matches(input))
{
    Console.WriteLine(m.Value); // Output: rain, Spain
}

4. Thay thế chuỗi với Replace

Bạn có thể sử dụng phương thức Replace để thay thế các phần của chuỗi khớp với biểu thức chính quy bằng một chuỗi khác.

string input = "123-456-7890";
string pattern = @"(\d{3})-(\d{3})-(\d{4})";
string replacement = "($1) $2-$3";

Regex regex = new Regex(pattern);
string result = regex.Replace(input, replacement);

Console.WriteLine(result); // Output: (123) 456-7890

5. Phân tách chuỗi sử dụng Regex

Phương thức Split cho phép phân tách chuỗi dựa trên biểu thức chính quy.

string input = "one1two2three3four4";
string pattern = @"\d";

Regex regex = new Regex(pattern);
string[] result = regex.Split(input);

foreach (string s in result)
{
    Console.WriteLine(s); // Output: one, two, three, four
}

Một số mẫu biểu thức thông dụng

  • \d: Chữ số.
  • \w: Ký tự từ a-z, A-Z, 0-9 và dấu gạch dưới (_).
  • \s: Khoảng trắng.
  • .: Bất kỳ ký tự nào ngoại trừ newline.
  • *: 0 hoặc nhiều lần.
  • +: 1 hoặc nhiều lần.
  • ?: 0 hoặc 1 lần.
  • ^: Bắt đầu của chuỗi.
  • $: Kết thúc của chuỗi.

Kết luận

Regular Expressions là công cụ rất hữu dụng và mạnh mẽ trong việc làm việc với chuỗi. Với những kiến thức cơ bản như trên, bạn có thể dễ dàng kiểm tra, tìm kiếm, thay thế, và phân tách chuỗi trong C#, giúp công việc xử lý văn bản trở nên hiệu quả hơn. Hãy thực hành và khai thác hết tiềm năng của Regex để tối ưu hóa quá trình làm việc với chuỗi trong các ứng dụng của bạn.

Comments