- Day la Regular Expression hop le!
- Day la Regular Expression khong hop le!
Tác giả: neverland87
Mô tả: Thủ thuật Regular Expression
Vấn đề: Bạn đã khởi tạo một RE, bây giờ bạn muốn kiểm tra tính hợp lệ về cú pháp của RE này, trước khi bạn sử dụng nó:
Giải pháp:
Tạo phương thức KiemTraHopLeRegex, có đối số sPattern là khuôn mẫu dùng để so khớp
Mã: Chọn hết
- static bool KiemTraHopLeRegex(string sPattern)
- {
- bool isValid = true;
- if ((sPattern!=null) && (sPattern.Trim().Length>0))
- {
- try
- {
- Regex.Match("", sPattern);
- }
- catch (ArgumentException exception)
- {
-
- isValid = false;
- }
- }
- else
- {
- isValid = false;
- }
- return isValid;
- }
Ví dụ:
Mã: Chọn hết
- static void Main(string[] args)
- {
- //vi du 1
- if (KiemTraHopLeRegex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))
- {
- Console.WriteLine("Day la Regular Expression hop le!");
- }
- else
- {
- Console.WriteLine("Day la Regular Expression khong hop le!");
- }
- //vi du 2
- if (KiemTraHopLeRegex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.))"))
- {
- Console.WriteLine("Day la Regular Expression hop le!");
- }
- else
- {
- Console.WriteLine("Day la Regular Expression khong hop le!");
- }
- }
Kết quả:
Mã: Chọn hết
Phương thức KiemTraHopLeRegex gọi phương thức Regex.Match, điều này hữu ích để chạy nhanh hơn các RE dựa vào một chuỗi. Phương thức tĩnh Regex.Match trả về một đối tượng Match. Bằng cách sử dụng phương thức tĩnh để chạy một RE (trong ví dụ trên là một chuỗi null), ta có thể xác định xem RE có hợp lệ hay không, bằng cách theo dõi về một ngoại lệ đưa ra. Phương thức Regex.Match sẽ đưa ra một ngoại lệ ArgumentException nếu RE là không đúng cú pháp. Thuộc tính Message của ngoại lệ này cho biết lý do tại sao RE bị thất bại, và thuộc tính ParamName chứa RE truyền vào phương thức Match.
Lưu ý đối với newbie: nhớ using System.Text.RegularExpressions; nhé