2009-09-03 16 views
19

Estoy desarrollando una aplicación en .NET donde el usuario puede proporcionar expresiones regulares que luego se utilizan para validar datos de entrada.¿Cómo validar una expresión regular?

Necesito una forma de saber si una expresión regular es realmente válida para el motor .net regex.

Gracias por cualquier ayuda

Respuesta

30

sólo tratar de compilar la expresión regular dada. Puede hacerlo creando el objeto Regex y pasándole el patrón. Aquí hay un código de muestra:

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

Ese es el enfoque que estoy usando actualmente. El problema es que estoy usando un bloque try {} catch {}. Quería saber si hay una forma de hacerlo sin excepción. Sin embargo, gracias –

+2

Es la forma en que la clase Regex está diseñada en .NET: para verificar si un patrón es válido, debe compilarlo y ver si se produce alguna excepción. Nunca escuché de otra forma de hacer esto. – Paulius

+0

Ugh esto apesta duro si lo está usando como un filtro dinámico sobre una gran colección :( – Sinaesthetic

Cuestiones relacionadas