Regular Expression là gì? Lập trình viên không thể không sài qua cái này

Cập nhật ngày: 07/12/2021 - Đã có 2055 lượt xem bài viết này!
Regular Expression là gì? Lập trình viên không thể không sài qua cái này
Regular Expression chủ yếu là các mẫu (pattern) thay vì các chuỗi cụ thể được sử dụng tìm/thay thế (Find/Replace). Là một công cụ cực mạnh cho xử lí chuỗi trong C#, javascript....

Regular Expression là gì? Lập trình viên không thể không sài qua cái này

Regular Expression là gì? Lập trình viên không thể không sài qua cái này

Regular Expression chủ yếu là các mẫu (pattern) thay vì các chuỗi cụ thể được sử dụng tìm/thay thế (Find/Replace). Là một công cụ cực mạnh cho xử lí chuỗi trong C#, javascript....

Các cú pháp cơ bản Regular Expression

Kết hợp chuỗi đơn giản (Simple String Matching)

Là hình thức cơ bản nhất của biểu thức nhưng cho phép bạn nhanh chóng khai thác các mẫu khác nhau để bạn có thể tìm kiếm nhiều hơn một chuỗi tại một thời điểm hơn là thực hiện nhiều thao tác Tìm.

Tìm: m?n
Phù hợp: "man" and "men" but not "moon"

Tìm: t*t
Phù hợp: "test", "tonight" và "tea time" (the "tea t" portion) không phải "tea time"

Tìm: Te+st
Phù hợp: "test", "teest", "teeeest" không phải "tst"

Các ví dụ thực tế và hay sử dụng Regular Expression

  • Kiểm tra dữ liệu nhập vào có phải là Email không, có phải là số điện thoại không
  • Xóa bỏ các comment trong code, xóa bỏ những khoảng trắng dư thừa trong html giúp file html nhẹ hơn khi trả về cho trình duyệt
  • Cấu hình rewrite trong web.config

Loại bỏ thẻ tag html

public static string TrimHtmlTags(this string input)
{
    if (string.IsNullOrEmpty(input))
        return null;
    input = HttpUtility.HtmlDecode(input);
    return Regex.Replace(input, @"<.[^>]*>", string.Empty);
}

Chuyển chuỗi có dấu sang không dấu

public static string ToVietNameseChacracter(this string s)
{
    if (string.IsNullOrEmpty(s))
        return string.Empty;
    Regex regex = new Regex("\\p{IsCombiningDiacriticalMarks}+");
    string temp = s.Normalize(NormalizationForm.FormD);
    return regex.Replace(temp, String.Empty);
}

Kiểm tra xem có phải là Email không

public bool IsValidMail(string email)
{
    if (string.IsNullOrEmpty(email))
        return false;
    string sMailPattern = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
    return Regex.IsMatch(email.Trim(), sMailPattern);
}

Kiểm tra có phải là số điện thoại di động ở Việt Nam không

public bool IsValidVietNamPhoneNumber(string phoneNum)
{
    if (string.IsNullOrEmpty(phoneNum))
        return false;
    string sMailPattern = @"^((09(\d){8})|(086(\d){7})|(088(\d){7})|(089(\d){7})|(01(\d){9}))$";
    return Regex.IsMatch(phoneNum.Trim(), sMailPattern);
}

Kiểm tra chuỗi có phải là số không (hay sử dụng đối với dữ liệu từ người dùng gửi lên server xử lý)

public bool IsValidNumber(string str)
{
    return Regex.IsMatch(str, @"^[0-9]+$");
}

BTV. Phạm Thị Mỹ Phương
Phòng Truyền Thông ImicroSoft Hồ Chí Minh
Hotline: 0916 878 224
Email: phuongptm@imicrosoft.edu.vn

Xem khóa đào tạo nhân sự theo danh mục!

Xem các khóa đào tạo nhân sự