STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    Biểu Thức Chính Quy

    Giới thiệu Regular Expression và hướng dẫn sử dụng trong C# với System.Text.RegularExpression
    03/03/2016 20/09/2020 3 phút đọc
    Biểu Thức Chính Quy

    Trong quá trình nhập liệu, việc điền vào form có những yêu cầu bắt buộc khác nhau, như email, số điện thoại... Phải đúng một định dạng hay ràng buộc của nó, để làm được những điều đó thì người lập trình phải xử lý cho phù hợp với những yêu cầu đó một cách tốn kém về thời gian và công sức nhiều. Trong C# cũng cung cấp một phương thức hỗ trợ dễ dàng cho việc định dạng đề ra những yêu cầu ràng buộc một cách tự động theo một tiêu chuẩn chung.

    Regular expression

    Biểu thức chính quy (tiếng Anh: regular expression, viết tắt là regexp, regex hay regxp) là một chuỗi miêu tả một bộ các chuỗi khác, theo những quy tắc cú pháp nhất định. Biểu thức chính quy thường được dùng trong các trình biên tập văn bản và các tiện ích tìm kiếm và xử lý văn bản dựa trên các mẫu được quy định. Nhiều ngôn ngữ lập trình cũng hỗ trợ biểu thức chính quy trong việc xử lý chuỗi, chẳng hạn như Perl có bộ máy mạnh mẽ để xử lý biểu thức chính quy được xây dựng trực tiếp trong cú pháp của chúng. Bộ các trình tiện ích (gồm trình biên tập sed và trình lọc grep) đi kèm các bản phân phối Unix có vai trò đầu tiên trong việc phổ biến khái niệm biểu thức chính quy. 

    Ví dụ định dạng email phải có @, số điện thoại phải bắt buộc là số, ...

    Các class hỗ trợ

    .NET framework cung cấp các classes trong System.Text.RegularExpression

    Regex class

    Có 2 phương thức:

    Match (static hoặc instance) trả về kết quả là các so trùng kiểu class Match.

    Matches trả về MatchCollection object.

    Match class

    Kiểu chứa một kết quả match tìm thấy.

    ToString() trả về chuỗi con match với regular expression.

    MatchCollection class

    Trả về một tập match tìm thấy.

    Ví dụ:

    using System;
    using System.Text.RegularExpressions;
    
    namespace RegularExpressions
    {
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			var s = "STDIO 1000+ posts";
    			Regex _regex= new Regex(@"s");
    			Console.WriteLine("Using Match:");
    			Console.WriteLine(_regex.Match(s));
    			Console.WriteLine("Using Matches:");
    
    			foreach (var _re in _regex.Matches(s))
    				Console.WriteLine(_re);
    
    			Console.ReadLine();	
    		}
    	}
    }

    Using Match:

    s

    Using Matches:

    s
    s

    Các ký tự định nghĩa

    Ký tự Trường hợp sử dụng
    .

    Bất kỳ ký tự nào

    [abcd]  Bất kỳ ký tự nào nằm trong []
    [^abcd]  Ngược với ở trên không có ký tự nào trong []
    [a-z] Ký tự bất kỳ nằm trong khoảng a đến z
    \w Bất kỳ ký tự nào nằm trong khoảng [a-zA-Z_0-9]
    \W Ngược với \w các ký tự như $, @, ?, !, v.v...
    \d Số
    \D Không phải số
    \s Khoảng trắng
    \S Không khoảng trắng

    Các ký tự đại lượng

    Ký Tự Trường hợp sử dụng
    * Không hoặc nhiều
    + Một hoặc nhiều
    ? 0 hoặc có 1 ký tự
    {n} Bắt buộc có n ký tự
    {n,} Bắt buộc tối thiểu n ký tự hoặc nhiều
    {n, m} Bắt buộc tối thiểu n ký tự hoặc tối đa m ký tự

    Ví dụ: định dạng về một email hợp lệ phải có ít nhất 5 ký tự hoặc tối đa là 20 ký tự và có định dạng đuôi là @gmail.com.

    string regString = @"\w{5,20}@gmail.com".

    Chú ý: sử dụng @ để nói rằng "\w{5,20}@gmail.com" là một chuỗi còn không thì phải khai báo:

    String regString = "\\w{5,20}@gmail.com"

    0 Bình luận
    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021