martes, 16 de enero de 2018

Remover caracteres en C#, que no son parte del patrón

En la web, inclusive en la propia pagina de Microsoft uno puede encontrar este ejemplo similar de como remover carácter que de un patrón especifico, de todas formas lo comparto a mas de alguien le puede ser útil  😊.

En esta oportunidad publico una función muy útil que permite remover caracteres que no son parte del patrón.

Para ellos utilizamos la clase de RegularExpression, para ello debe incluir en el proyecto:

 using System.Text.RegularExpressions;


A nuestra función le hemos llamado RemoveCharInvalids, todo lo que es parte del patrón es removido.

        public string RemoveCharInvalids(string cadena)
        {
            string patternvalid = @"[^\w \.*@-\\]";
            string _result = null;
            try
            {
                _result = Regex.Replace(cadena, patternvalid, "", RegexOptions.None);
            }
            catch (Exception ex)
            {
                _result = cadena;
                throw ex;
            }
            return _result; 
        }

Como se puede observar tenemos un patrón definido en la variable "patternvalid", le estamos diciendo que nuestra expresión que identifique los caracteres que NO son alfanuméricos, esto lo hacemos con ^\w que es equivalente a  [^a-zA-Z0-9] y que NO son los caracteres punto (.), asterisco (*), arroba (@), guion medio (-) y diagonal (\\).

  string patternvalid = @"[^\w \.*@-\\]";

Una vez definido el patrón, entonces procedemos a remover los caracteres con Regex.Replace

_result = Regex.Replace(cadena, patternvalid, "", RegexOptions.None);


como puedes observar lo estamos reemplazando con carácter vacío ("").

Espero que se de  utilidad

No hay comentarios.:

Publicar un comentario