C # - Biểu thức chính quy

A regular expressionlà một mẫu có thể được đối sánh với văn bản đầu vào. Khuôn khổ .Net cung cấp một công cụ biểu thức chính quy cho phép đối sánh như vậy. Một mẫu bao gồm một hoặc nhiều ký tự, toán tử hoặc cấu trúc.

Cấu trúc để xác định biểu thức chính quy

Có nhiều loại ký tự, toán tử và cấu trúc khác nhau cho phép bạn xác định các biểu thức chính quy. Nhấp vào các liên kết sau để tìm các cấu trúc này.

  • Nhân vật trốn thoát

  • Các lớp nhân vật

  • Anchors

  • Nhóm cấu trúc

  • Quantifiers

  • Cấu trúc phản hồi

  • Cấu trúc thay thế

  • Substitutions

  • Các cấu trúc khác

Lớp Regex

Lớp Regex được sử dụng để biểu diễn một biểu thức chính quy. Nó có các phương pháp thường được sử dụng sau:

Sr.No. Phương pháp & Mô tả
1

public bool IsMatch(string input)

Cho biết liệu biểu thức chính quy được chỉ định trong hàm tạo Regex có tìm thấy kết quả phù hợp trong chuỗi đầu vào được chỉ định hay không.

2

public bool IsMatch(string input, int startat)

Cho biết liệu biểu thức chính quy được chỉ định trong hàm tạo Regex có tìm thấy khớp trong chuỗi đầu vào được chỉ định hay không, bắt đầu từ vị trí bắt đầu được chỉ định trong chuỗi.

3

public static bool IsMatch(string input, string pattern)

Cho biết liệu biểu thức chính quy được chỉ định có tìm thấy khớp trong chuỗi đầu vào được chỉ định hay không.

4

public MatchCollection Matches(string input)

Tìm kiếm chuỗi đầu vào được chỉ định cho tất cả các lần xuất hiện của một biểu thức chính quy.

5

public string Replace(string input, string replacement)

Trong một chuỗi đầu vào được chỉ định, hãy thay thế tất cả các chuỗi khớp với mẫu biểu thức chính quy bằng một chuỗi thay thế đã chỉ định.

6

public string[] Split(string input)

Tách một chuỗi đầu vào thành một mảng các chuỗi con tại các vị trí được xác định bởi một mẫu biểu thức chính quy được chỉ định trong hàm tạo Regex.

Để có danh sách đầy đủ các phương thức và thuộc tính, vui lòng đọc tài liệu của Microsoft về C #.

ví dụ 1

Ví dụ sau phù hợp với các từ bắt đầu bằng 'S' -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "A Thousand Splendid Suns";
         
         Console.WriteLine("Matching words that start with 'S': ");
         showMatch(str, @"\bS\S*");
         Console.ReadKey();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns

Ví dụ 2

Ví dụ sau phù hợp với các từ bắt đầu bằng 'm' và kết thúc bằng 'e' -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "make maze and manage to measure it";

         Console.WriteLine("Matching words start with 'm' and ends with 'e':");
         showMatch(str, @"\bm\S*e\b");
         Console.ReadKey();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure

Ví dụ 3

Ví dụ này thay thế khoảng trắng thừa -

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      static void Main(string[] args) {
         string input = "Hello   World   ";
         string pattern = "\\s+";
         string replacement = " ";
         
         Regex rgx = new Regex(pattern);
         string result = rgx.Replace(input, replacement);

         Console.WriteLine("Original String: {0}", input);
         Console.WriteLine("Replacement String: {0}", result);    
         Console.ReadKey();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Original String: Hello World   
Replacement String: Hello World