c# - rango - expresion regular solo numeros mayores que 0
C#Expresión regular para unir letras, números y guiones bajos (4)
Estoy tratando de crear un patrón de expresión regular en C #. El patrón solo puede permitir:
- letras
- números
- subraya
Hasta ahora estoy teniendo poca suerte (no soy bueno en RegEx). Aquí está lo que he intentado hasta ahora:
// Create the regular expression
string pattern = @"/w+_";
Regex regex = new Regex(pattern);
// Compare a string against the regular expression
return regex.IsMatch(stringToTest);
@ "^ / w + $"
/ w coincide con cualquier "carácter de palabra", definido como dígitos, letras y guiones bajos. Es compatible con Unicode, por lo que hará coincidir las letras con diéresis y demás (mejor que intentar rodar su propia clase de personaje como [A-Za-z0-9_] que solo coincidiría con las letras en inglés).
La ^ al principio significa "coincide con el principio de la cadena aquí", y la $ al final significa "coincide con el final de la cadena aquí". Sin esos, por ejemplo, si solo tuvieras @ "/ w +", entonces "@@ Foo @@" coincidiría, ya que contiene uno o más caracteres de palabras. Con ^ y $, entonces "@@ Foo @@" no coincidiría (lo que suena como lo que estás buscando), porque no tienes un principio de cadena seguido de una o más palabras caracteres seguidos de fin de cadena.
Intente experimentar con algo como http://www.weitz.de/regex-coach/ que le permite desarrollar expresiones regulares de forma interactiva.
Está diseñado para Perl, pero me ayudó a comprender cómo funciona una expresión regular en la práctica.
Regex
packedasciiRegex = new Regex(@"^[!#$%&''()*+,-./:;?@[/]^_]*$");
EDITAR:
@"^[a-zA-Z0-9/_]+$"
o
@"^/w+$"