Regex là gì?

Regex 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 Php, javascript… Ví dụ: Khi kiểm tra tính hợp lệ của email hoặc số điện thoại thì điều bạn nghĩ tới đầu tiên chính là regex. Regex là viết tắt của Regular Expression, tên thuần Việt là biểu thức chính quy.



using System;
using System.Text.RegularExpressions;
                    
public class Program
{
    public static void Main()
    {
        var str = "{Name = \"'AddressDetail.ThisIsString'\", Number = 'AddressDetail.ThisIsNumber'}";

        //string str = "Would \"you\" like to have responses to your \"questions\" sent to you via email?";
        Random _random = new Random();  

        var reg = new Regex("\'.*?\'");
        var matches = reg.Matches(str);
        foreach (var item in matches)
        {
            //vi du ve gan value 
            str = str.Replace(item.ToString(), _random.Next(10000).ToString());
        }

        //Ket qua cuoi cung
        Console.WriteLine(str);

    }
    
    
    
    public static object GetPropertyValue(object src, string propName)
    {
        if (src == nullthrow new ArgumentException("Value cannot be null.""src");
        if (propName == nullthrow new ArgumentException("Value cannot be null.""propName");
        
        if(propName.Contains("."))//complex type nested
        {
            var temp = propName.Split(new char[] { '.' }, 2);
            return GetPropertyValue(GetPropertyValue(src, temp[0]), temp[1]);
        }
        else
        {
            var prop = src.GetType().GetProperty(propName);
            return prop != null ? prop.GetValue(src, null) : null;
        }
    }
}



Kết quả trả về

{Name = "334", Number = 9380}



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

Nói chung là Regex còn nhiều ứng dụng hữu ích khác, tóm gọn lại một chút là hiểu đơn giản thì regex là một chuỗi các kí tự miêu tả một bộ các chuỗi ki tự khác, theo những quy tắc và cú pháp nhất định.


Không phải lúc nào cũng nên dùng regex, mỗi ngôn ngữ sẽ có cú pháp áp dụng regex khác nhau, nhưng không sao vai trò của ngôn ngữ ở đây không quan trọng lắm.