2009-09-03 46 views
19

Tôi đang phát triển một ứng dụng trong .NET nơi người dùng có thể cung cấp Biểu thức chính quy sau đó được sử dụng để xác thực dữ liệu đầu vào.Làm cách nào để xác thực Biểu thức chính quy?

Tôi cần một cách để biết biểu thức chính quy có thực sự hợp lệ đối với công cụ regex .net không.

Cảm ơn bạn đã giúp đỡ

Trả lời

30

Chỉ cần cố gắng biên dịch regex đã cho. Bạn có thể làm điều đó bằng cách tạo đối tượng Regex và truyền mẫu đó cho nó. Dưới đây là mã mẫu:

public static bool IsRegexPatternValid(String pattern) 
{ 
    try 
    { 
     new Regex(pattern); 
     return true; 
    } 
    catch { } 
    return false; 
} 
+0

Đó là phương pháp tôi hiện đang sử dụng. Vấn đề là tôi đang sử dụng khối try {} catch {}. Tôi muốn biết nếu có một cách không ngoại lệ để làm điều này. Tuy nhiên, xin cảm ơn –

+2

Đây chỉ là cách mà lớp Regex được thiết kế trong .NET - để kiểm tra xem một mẫu có hợp lệ hay không, bạn cần phải biên dịch nó và xem có bất kỳ ngoại lệ nào không. Tôi chưa bao giờ nghe về bất kỳ cách nào khác để làm điều này. – Paulius

+0

Ugh này sucks cứng nếu bạn đang sử dụng nó như một bộ lọc động trên một bộ sưu tập lớn :( – Sinaesthetic

Các vấn đề liên quan