Hướng dẫn C# Regex: Biểu thức chính quy C# là gì

Hướng dẫn C# Regex này giải thích biểu thức chính quy trong C# là gì, cú pháp của nó, các phương thức lớp Regex và cách sử dụng các phương thức này với sự trợ giúp của các ví dụ:

Biểu thức chính quy trong C# được sử dụng để so khớp một mẫu ký tự cụ thể. Biểu thức chính quy được sử dụng bất cứ khi nào người dùng cần tìm một số mẫu lặp lại hoặc thực hiện xác thực dữ liệu hoặc thậm chí để kiểm tra định dạng dữ liệu.

RegEx được sử dụng để tìm xem một chuỗi có chứa hoặc khớp với một mẫu ký tự nhất định hay không. Biểu thức chính quy chủ yếu là một chuỗi ký tự biểu thị một mẫu.

Một mẫu có thể là bất kỳ thứ gì từ số, ký tự hoặc sự kết hợp của tất cả. Regex được sử dụng rộng rãi để xác nhận. Phân tích cú pháp hoặc khớp chuỗi, ví dụ , tìm xem chuỗi có khớp với định dạng tiền tệ, số điện thoại hoặc định dạng ngày hay không.

Lớp Regex Trong C#

Lớp regex được sử dụng trong C# để thực hiện các thao tác regex. Nó chứa một số phương thức khác nhau có thể được sử dụng để thực hiện các hoạt động khác nhau liên quan đến biểu thức chính quy.

Nó có thể được sử dụng để phân tích văn bản lớn để tìm một chuỗi ký tự cụ thể bằng cách sử dụng các phương thức có thể được sử dụng để thực hiện so khớp, để thay thế hoặc có thể được sử dụng để phân tách chuỗi ký tự.

Lớp biểu thức chính quy có mặt bên trong không gian tên; System.Text.RegularExpression. Lớp chấp nhận một chuỗi ở dạng chuỗi ký tự làm tham số.

Phương thức Regex C#

mà chúng tôi đã tạo ra “^Super” có thể phù hợp với tất cả các giá trị của super, thậm chí là superman hoặc siêu nhiên nhưng chúng tôi không chỉ muốn từ “Super”.

Điều này có nghĩa là phải có khoảng trắng sau từ to đánh dấu sự kết thúc của từ này và bắt đầu một từ khác. Để làm điều đó, chúng tôi sẽ thêm ký hiệu “\s” vào mẫu và do đó tạo mẫu cuối cùng của chúng tôi là

^Super\s

Tình huống 3: Sử dụng biểu thức chính quy để tìm tệp hợp lệ tên có phần mở rộng loại tệp hình ảnh.

Một tình huống thời gian thực quan trọng khác mà nhà phát triển thường gặp phải là xác thực loại tệp. Giả sử chúng ta có một nút tải lên trong giao diện người dùng. Nút này chỉ có thể chấp nhận các phần mở rộng loại tệp hình ảnh.

Chúng tôi cần xác thực tệp tải lên của người dùng và thông báo cho anh ấy trong trường hợp anh ấy tải lên sai định dạng tệp. Điều này có thể dễ dàng đạt được bằng cách sử dụng Biểu thức chính quy.

Đưa ra bên dưới là một chương trình đơn giản để kiểm tra điều này.

public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj")); 

Kết quả

True

True

True

False

False

Giải thích

Ở đây chúng ta cần khớp a tên tập tin. Tên tệp hợp lệ bao gồm ba phần ( tên tệp + . + phần mở rộng tệp ). Chúng ta cần tạo một biểu thức chính quy để khớp với cả ba phần. Hãy bắt đầu bằng cách khớp phần đầu tiên, tức là tên của tệp. Tên tệp có thể chứa ký tự chữ và số và ký tự đặc biệt.

Như đã thảo luận trước đó, ký hiệu để biểu thị đó là “\w”. Ngoài ra, tên tệp có thể là một hoặc nhiềutheo sau là dấu chấm (.), sau đó là tên của trang web, sau đó là dấu chấm (.) và ở cuối phần mở rộng tên miền.

Vì vậy, tương tự như trường hợp trước, chúng tôi sẽ cố gắng khớp từng phần một . Trước tiên hãy bắt đầu bằng cách khớp “www”. Phần. Vì vậy, chúng tôi bắt đầu với biểu tượng bắt đầu, sau đó là “www”. Đó là thứ cố định, vì vậy chúng tôi sử dụng ký hiệu bắt đầu theo sau là các từ chính xác để khớp.

“^www.”

Sau đó, chúng tôi sẽ bắt đầu làm việc với phần thứ hai. Phần thứ hai của địa chỉ web có thể là bất kỳ tên chữ và số nào. Vì vậy, ở đây chúng ta sẽ sử dụng dấu ngoặc vuông có trong lớp ký tự để xác định phạm vi cần khớp. Sau khi thêm phần thứ hai, phần thứ hai sẽ cung cấp cho chúng tôi.

“^www.[a-zA-Z0-9]{3,20}”

Ở đây chúng tôi cũng đã thêm dấu ngoặc nhọn để xác định độ dài ký tự tối thiểu và tối đa cho tên trang web. Chúng tôi đã cung cấp tối thiểu là 3 và tối đa là 20. Bạn có thể cung cấp bất kỳ độ dài tối thiểu hoặc tối đa nào bạn muốn.

Bây giờ, sau khi đã bao gồm phần đầu tiên và phần thứ hai của địa chỉ web, chúng tôi chỉ còn lại phần cuối cùng một phần, tức là phần mở rộng tên miền. Nó khá giống với những gì chúng ta đã làm trong trường hợp trước, chúng ta sẽ so khớp trực tiếp với các phần mở rộng miền bằng cách sử dụng OR và đặt mọi phần mở rộng miền hợp lệ bên trong dấu ngoặc tròn.

Vì vậy, nếu cộng tất cả những phần mở rộng này lại với nhau, chúng ta sẽ có một biểu thức chính quy hoàn chỉnh để khớp với bất kỳ địa chỉ web hợp lệ nào.

www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$

Tình huống 5: Sử dụng Biểu thức chính quy để xác thực mộtđịnh dạng id email

Giả sử rằng chúng tôi có biểu mẫu đăng nhập trên trang web yêu cầu người dùng nhập địa chỉ email của họ. Vì những lý do rõ ràng, chúng tôi sẽ không muốn biểu mẫu của mình tiếp tục với các địa chỉ email không hợp lệ. Để xác thực xem địa chỉ email do người dùng nhập có chính xác hay không, chúng tôi có thể sử dụng biểu thức chính quy.

Dưới đây là một chương trình đơn giản để xác thực địa chỉ email.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); }

Đầu ra

Đúng

Đúng

Sai

Giải thích

A địa chỉ email hợp lệ chứa bảng chữ cái, chữ số và một số ký tự đặc biệt như dấu chấm (.), dấu gạch ngang (-) và dấu gạch dưới (_) theo sau là ký hiệu “@”, sau đó là tên miền và phần mở rộng tên miền.

Do đó, chúng ta có thể chia địa chỉ email thành bốn phần, tức là phần nhận dạng email, ký hiệu “@”, tên miền và phần cuối cùng là phần mở rộng miền.

Hãy bắt đầu bằng cách viết một biểu thức chính quy cho địa chỉ email phần đầu tiên. Nó có thể là chữ và số với một số ký tự đặc biệt. Giả sử rằng chúng ta có kích thước biểu thức nằm trong khoảng từ 5 đến 25 ký tự. Tương tự như cách chúng ta đã viết trước đó (trong kịch bản email), chúng ta có thể đưa ra biểu thức sau.

^[a-zA-Z0-9\._-]{5,25}

Bây giờ, hãy chuyển sang phần thứ hai. Nó tương đối dễ dàng vì chúng ta chỉ phải khớp một ký hiệu, tức là “@”. Việc thêm nó vào biểu thức trên sẽ cho chúng ta.

^[a-zA-Z0-9\._-]{5,25}.@

Chuyển sang phần thứ ba, tức là tên miền sẽ luôn là một chuỗi thấp hơncác từ khớp, bảng chữ cái, địa chỉ trang web, id email và thậm chí cả các loại tệp cũng như phần mở rộng.

Các tình huống này khá hữu ích trong việc xác thực thông tin đầu vào của người dùng theo thời gian thực mà không cần viết nhiều dòng mã và do đó giúp tiết kiệm thời gian và giảm độ phức tạp. Những ví dụ này đã được sử dụng để hướng dẫn người dùng tạo tập hợp biểu thức chính quy của riêng họ và do đó giúp họ xử lý một số tình huống khác nhau.

Regex có thể đơn giản như sử dụng bảng chữ cái hoặc chữ số để khớp với một chuỗi nhất định ký tự hoặc phức hợp bằng cách sử dụng kết hợp các ký tự đặc biệt, từ định lượng, lớp ký tự, v.v. để xác thực các định dạng phức tạp hoặc để tìm kiếm một mẫu cụ thể trong chuỗi ký tự.

Tóm lại, biểu thức chính quy là một công cụ mạnh mẽ dành cho lập trình viên và giúp giảm số lượng mã cần thiết để thực hiện trong tác vụ so khớp dữ liệu hoặc xác thực.

IsMatch

Phương thức đơn giản và hữu ích nhất trong lớp Regex là phương thức IsMatch. Phương thức này có các quá tải khác nhau để thực hiện khớp các ký tự dựa trên các tham số khác nhau.

Cách đơn giản nhất là

Replace(String text, String replaceText)

Phương thức thay thế chấp nhận hai tham số và trả về một giá trị chuỗi. Tham số đầu tiên là chuỗi ký tự hoặc biểu thức chính quy mà bạn muốn sử dụng để khớp và tham số thứ hai là thay thế biểu thức chính quy.

Phương thức này hoạt động bằng cách tìm một kết quả khớp của văn bản đã cho và sau đó thay thế điều đó bằng văn bản thay thế do người dùng cung cấp. Chữ ký của phương thức là Chuỗi công khai Thay thế(chuỗi văn bản, văn bản thay thế chuỗi)

Chuỗi công khai[] Tách(văn bản chuỗi)

Phương thức phân tách từ lớp regex chấp nhận đầu vào chuỗi làm tham số và trả về một mảng chứa các chuỗi con. Tham số được truyền trong phương thức là chuỗi cần được tách.

Phương thức tìm mẫu đầu vào khớp trong chuỗi và sau khi xác định được bất kỳ mẫu khớp nào, nó sẽ chia chuỗi tại vị trí đó thành chuỗi con nhỏ hơn với mỗi mẫu phù hợp là điểm phá vỡ. Sau đó, phương thức này trả về một mảng chứa tất cả các chuỗi con.

Cách Sử Dụng Các Phương Thức Regex C#

Chúng ta hãy xem cách sử dụng các phương thức này bằng cách viết một chương trình đơn giản.

public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } }

Đầu ra của phần trênchương trình

True

True

True

Replace World

Xin chào

World

Hôm nay

Giải thích cho đoạn mã trên:

Khi bắt đầu chương trình, chúng tôi đã tạo một đối tượng và cho mẫu mà chúng tôi sẽ sử dụng đối với mã khớp trong đầu vào chuỗi tiếp theo, chúng tôi đã sử dụng định dạng văn bản để giúp mọi thứ đơn giản ngay từ đầu nhưng nếu cảm thấy thoải mái, bạn có thể bắt đầu sử dụng các mẫu biểu thức chính quy. (Chúng ta sẽ thảo luận chi tiết về mẫu biểu thức chính quy khi chúng ta tiếp tục trong hướng dẫn này)

Sau đó, chúng ta sẽ sử dụng chuỗi khớp để nhập hệ số mà chúng ta đã khai báo là đối tượng đã chỉ định với chuỗi đầu vào và nếu nó khớp sau đó nó sẽ trả về kết quả trả về false.

Phương thức tiếp theo mà chúng tôi sử dụng là IsMethod(string input, int index). Phương thức này chấp nhận hai tham số và ở đây chúng tôi cung cấp chuỗi đầu vào và chỉ mục từ nơi trận đấu phải bắt đầu. Ví dụ: ở đây, chúng tôi muốn bắt đầu so khớp từ đầu chuỗi đầu vào.

Sau đó, chúng tôi trình bày cách sử dụng IsMatch(đầu vào chuỗi, mẫu chuỗi). Ở đây chúng tôi đã cung cấp chuỗi đầu vào, sau đó chúng tôi muốn tìm xem liệu văn bản mẫu có xuất hiện trong đầu vào hay không. Nếu có thì nó sẽ trả về true (như trong trường hợp của chúng ta), ngược lại nó sẽ trả về false.

Một phương thức khác mà chúng ta đã thảo luận được thay thế. Phương pháp này khá hữu ích trong các chương trình mà bạn muốn thay đổi dữ liệu đầu vàohoặc thay đổi định dạng của dữ liệu hiện có.

Ở đây chúng tôi cung cấp hai tham số, tham số đầu tiên là chuỗi đầu vào và tham số thứ hai là chuỗi có thể được sử dụng để thay thế chuỗi trước đó. Phương thức này cũng sử dụng mẫu được xác định trong đối tượng biểu thức chính quy mà chúng tôi đã xác định trước đó.

Một phương thức quan trọng khác mà chúng tôi đã sử dụng là phương pháp tách. Phương pháp này được sử dụng để phân tách chuỗi đã cho dựa trên một số mẫu định kỳ. Ở đây, chúng tôi đã cung cấp một chuỗi “Hello_World_Today”.

Giả sử chúng tôi muốn xóa dấu gạch dưới khỏi chuỗi đã cho và lấy các chuỗi con. Đối với điều này, chúng tôi chỉ định tham số đầu vào và sau đó chúng tôi đưa ra mẫu mà chúng tôi cần sử dụng làm điểm phân tách. Phương thức trả về một mảng và chúng ta có thể sử dụng một vòng lặp đơn giản như foreach để truy xuất tất cả các chuỗi.

Cú pháp biểu thức chính quy

Có một số cú pháp khác nhau như ký tự đặc biệt, từ định lượng, lớp ký tự, v.v. có thể được sử dụng để khớp với một mẫu nhất định từ một đầu vào nhất định.

Trong phần này của hướng dẫn, chúng ta sẽ tìm hiểu sâu về cú pháp do regex cung cấp và sẽ cố gắng giải quyết một số tình huống thực tế Sử dụng chúng. Trước khi chúng tôi tiếp tục, hãy đảm bảo rằng bạn đã nắm được ý tưởng cơ bản về biểu thức chính quy và các phương thức khác nhau có sẵn trong lớp biểu thức chính quy.

Các ký tự đặc biệt

Các ký tự đặc biệt trong biểu thức chính quy được sử dụng để gán một số ý nghĩa khác nhau thành một khuôn mẫu. Bây giờ chúng ta sẽ xem xétmột số ký tự đặc biệt được sử dụng rộng rãi và ý nghĩa của chúng trong Regex.3

Ký tự đặc biệt Ý nghĩa
^ Đây là một trong những cú pháp được sử dụng rộng rãi nhất. Nó biểu thị phần bắt đầu, từ hoặc mẫu sau phần này bắt đầu khớp từ phần đầu của văn bản nhập.
$ Dấu hiệu này được sử dụng để khớp các từ từ phần cuối của chuỗi. Các từ/mẫu được biểu thị trước biểu tượng này sẽ khớp với các từ có ở cuối chuỗi.
. (chấm) Dấu chấm được sử dụng để so khớp một ký tự đơn trong chuỗi đã cho xảy ra một lần.
\n Dấu này được sử dụng cho một ký tự mới dòng.
\d và \D Chữ thường 'd' được sử dụng để khớp với một ký tự chữ số và chữ hoa 'D' được sử dụng để khớp với ký tự không có chữ số ký tự.
\s và \S Chữ thường 's' được sử dụng để khớp với khoảng trắng và chữ hoa 'S' được sử dụng để khớp với khoảng trắng .
\w và \W Chữ thường 'w' được sử dụng để khớp với các ký tự chữ và số/gạch dưới và chữ hoa 'W' được sử dụng để khớp với các ký tự không phải từ ký tự.

Cú pháp định lượng

Cú pháp định lượng được sử dụng để đếm hoặc định lượng các tiêu chí phù hợp. Ví dụ: nếu bạn muốn kiểm tra xem một chuỗi cụ thể có chứa bảng chữ cái một hay nhiều lần hay không. Hãy cùng xem xét một số lượng từ thường được sử dụng trong Biểu thức chính quy.

Lượng từCú pháp Ý nghĩa
* Ký hiệu này được sử dụng để khớp với ký tự đứng trước.
+ Biểu tượng này được sử dụng để khớp với một hoặc nhiều ký tự trong một hàng.
{n} Chữ số bên trong đường cong dấu ngoặc nhọn được sử dụng để khớp với số của ký tự trước được xác định bằng số bên trong dấu ngoặc nhọn.
{n,} Số bên trong dấu ngoặc nhọn và ký hiệu này được sử dụng để đảm bảo rằng nó khớp với ít nhất n (tức là giá trị số bên trong dấu ngoặc nhọn).
{n, m} Biểu tượng này được sử dụng để khớp từ ký tự trước từ n số lần thành m số lần.
? Biểu tượng này làm cho các ký tự trước khớp với nhau dưới dạng tùy chọn.

Lớp ký tự

Lớp ký tự còn được gọi là bộ ký tự và điều này được sử dụng để yêu cầu công cụ regex tìm kiếm một kết quả khớp duy nhất trong số nhiều ký tự. Một lớp ký tự sẽ chỉ khớp với một ký tự và thứ tự của các ký tự bên trong bộ ký tự không quan trọng.

Lớp ký tự Ý nghĩa
[ phạm vi ] Ký hiệu dấu ngoặc vuông được sử dụng để khớp với một phạm vi ký tự. Ví dụ: chúng ta có thể sử dụng nó để xác định bất kỳ ký tự nào trong phạm vi từ bảng chữ cái “a” đến “z” bằng cách đặt phạm vi bên trong dấu ngoặc như [a-z]

Hoặc, chúng ta cũng có thể khớp với số “1” thành “ 9” bằng cách biểu thịbiểu thức bằng cách sử dụng một số ví dụ thời gian thực.

Tình huống 1: Xác thực nếu chuỗi đầu vào bao gồm 6 ký tự bảng chữ cái không phân biệt chữ hoa chữ thường.

Tình huống phổ biến nhất cho biểu thức chính quy là tìm và khớp một từ đã cho. Ví dụ: giả sử tôi muốn một chuỗi chữ cái ngẫu nhiên từ người dùng và đầu vào đó phải dài chính xác 6 chữ số.

Để xác thực rằng chúng ta có thể sử dụng một biểu thức chính quy đơn giản. Hãy viết một chương trình để hiểu rõ hơn cách viết và cách sử dụng biểu thức chính quy.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); }

Đầu ra

True

Sai

Giải thích

Trong ví dụ này, chúng tôi đang cố xác thực một chuỗi đầu vào để kiểm tra xem chuỗi đó có chứa các ký tự chữ cái gồm sáu chữ số hay không. Các ký tự có thể có cả chữ thường và chữ hoa, vì vậy chúng tôi cũng cần tính đến điều đó.

Vì vậy, ở đây chúng tôi đã xác định một mẫu biểu thức chính quy trong biến “patternText” rồi chuyển nó vào đối tượng biểu thức chính quy . Bây giờ, các dòng mã tiếp theo khá đơn giản, chúng ta đã sử dụng phương thức IsMatch để so sánh biểu thức chính quy và chuỗi đầu vào.

Bây giờ chúng ta hãy xem biểu thức chính quy mà chúng ta đã nghĩ ra. Biểu thức (^[a-zA-Z]{6}$) được tạo thành từ 4 phần khác nhau. “^”, “[a-zA-Z]”, “{6}” và “$”. Phần thứ hai biểu thị các ký tự khớp, được sử dụng để thực hiện khớp biểu thức, “a-z” cho chữ thường và “A-Z” cho chữ in hoa.

Phần thứ nhấtký tự phần “^” đảm bảo rằng chuỗi bắt đầu bằng một mẫu được xác định trong phần thứ hai, tức là bảng chữ cái viết thường và viết hoa.

Dấu ngoặc nhọn trong phần thứ ba xác định số lượng ký tự trong chuỗi có thể được xác định theo mẫu đã xác định, tức là 6 trong trường hợp này và ký hiệu “$”, đảm bảo rằng nó kết thúc bằng mẫu được xác định trong phần thứ hai.

^[a-zA-Z]{6}$

Tình huống 2: Sử dụng Cụm từ thông dụng để xác thực rằng một từ bắt đầu bằng “Super” và có khoảng trắng sau đó, tức là để xác thực xem “Super” có xuất hiện ở đầu câu hay không.

Giả sử chúng ta đang đọc một số thông tin đầu vào của người dùng và cần đảm bảo rằng người dùng luôn bắt đầu câu của họ bằng một từ, số hoặc bảng chữ cái cụ thể. Điều này có thể đạt được khá dễ dàng bằng cách sử dụng một biểu thức chính quy đơn giản.

Hãy xem xét một chương trình mẫu và sau đó thảo luận chi tiết về cách viết biểu thức này.

 public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); }

Đầu ra

Đúng

Sai

Giải thích

Cũng trong ví dụ này, chúng tôi đã sử dụng cách thiết lập mã tương tự như trong cái đầu tiên. Mẫu biểu thức chính quy trong tình huống này yêu cầu khớp với tổ hợp từ hoặc câu bắt đầu bằng “Super”.

^Super

Vì vậy, khi chúng tôi muốn khớp từ đầu của từ chuỗi, chúng tôi sẽ bắt đầu bằng cách đặt ký hiệu “^”, sau đó sẽ đưa ra mẫu mà chúng tôi muốn khớp, trong trường hợp này là “Super”. Bây giờ mô hình[1-9]

[^ phạm vi] Điều này biểu thị lớp ký tự phủ định. Nó được sử dụng để khớp với bất kỳ thứ gì, không nằm trong phạm vi được biểu thị bên trong dấu ngoặc.
\ Cái này được sử dụng để khớp các ký tự đặc biệt có thể có ký hiệu biểu thức chính quy của riêng chúng. Dấu gạch chéo được sử dụng để khớp với các ký tự đặc biệt ở dạng chữ của chúng.

Nhóm

Có thể sử dụng dấu ngoặc tròn hoặc dấu ngoặc đơn để nhóm một phần của ký tự thông thường biểu hiện cùng nhau. Điều này cho phép người dùng thêm một bộ định lượng với biểu thức.

Nhóm Ý nghĩa
( nhóm biểu thức ) Dấu ngoặc tròn được sử dụng để nhóm một biểu thức.
các ký tự như vậy sẽ sử dụng ký hiệu “+”. Kết hợp chúng lại và chúng ta có biểu tượng cho phần đầu tiên.
(\w+)

Khung ngoặc đã tách phần này thành từng phần. Phần tiếp theo là biểu tượng dấu chấm. Vì biểu tượng dấu chấm có ý nghĩa của nó trong biểu thức chính quy, chúng tôi sẽ sử dụng dấu gạch chéo ngược trước dấu chấm để cung cấp cho nó nghĩa đen. Kết hợp cả hai và chúng tôi có hai phần đầu tiên của biểu thức chính quy.

(\w+)\.

Bây giờ, đối với phần thứ ba và phần cuối cùng, chúng tôi có thể xác định trực tiếp các phần mở rộng tệp bắt buộc được phân tách bằng “trường hợp các ký tự chữ cái. Nếu muốn, bạn cũng có thể bao gồm các ký tự chữ cái viết hoa hoặc số nhưng trong trường hợp này, chúng tôi sẽ sử dụng bảng chữ cái viết thường.

Nếu chúng tôi thêm biểu thức cho bảng chữ cái viết thường có độ dài từ 2 đến 12 ký tự, thì chúng ta sẽ có biểu thức sau.

^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}

Bây giờ, chúng ta chỉ còn lại biểu thức cho phần mở rộng tên miền, tương tự như kịch bản thứ tư, chúng ta sẽ xử lý một số phần mở rộng tên miền cụ thể. Nếu muốn, bạn có thể thêm chúng bằng cách đặt chúng bên trong dấu ngoặc tròn và tách chúng bằng dấu “

Cuộn lên đầu trang