2012-09-14 34 views
5

Estoy utilizando anotaciones de datos MVC y mi requisito es que el campo de dirección puede contener cualquier carácter (es decir, que no sean caracteres ingleses también permitidos) excepto < > . ! @ # %/? *.Expresión regular Excepto este caracteres

He buscado en muchos sitios, pero no obteniendo cómo escribir esta expresión regular.

Hasta aquí he intentado:

[Required(ErrorMessage = "Address Required.")] 
[RegularExpression(@"^[<>[email protected]#%/]+$", ErrorMessage = "Address invalid.")] 
public string Address { get; set; } 

Respuesta

10

Actualmente, sólo está permitiendo cadena que consiste sólo de estas cartas.

Uso

"^[^<>[email protected]#%/]+$" 
1

intentar es expresión regular:

[^<>[email protected]#%/?*] 
+0

Puede eliminar todas esas barras invertidas. Además, esto solo coincide con un personaje. –

1

Esto debería hacer el trabajo:

"[.!^<> @ #% /]"

EDITAR:

. (punto) es un carácter reservado en expresiones regulares, por lo que debe escapar.

8

Haga su expresión regular elegir cualquier carácter excepto los que aparecen con el símbolo de intercalación:

[^abc] 

coincidirá con nada que no sea una a, b, o c.

por lo que poner todo junto, su expresión regular sería

^[^<>[email protected]#%/?*]+$ 

señalar aquí que el cursor fuera de los corchetes significa 'coincide con el inicio de la línea', sin embargo, dentro de los corchetes significa 'coincide con cualquier cosa que se no es ninguno de los siguientes '

+2

No necesita escapar de los metacaracteres de expresiones regulares en una clase de caracteres (excepto la barra invertida y el corchete de cierre). –

Cuestiones relacionadas