Avatar ·

¿Cómo eliminar todos los caracteres de una cadena excepto letras, dígitos y guiones en C#?

Solución con expresión regular

Tu tarea se resuelve muy fácilmente con una expresión regular que incluya letras latinas, cirílicas, dígitos, espacios y guiones. El patrón correcto sería [^a-zA-Zа-яА-Я0-9\s-]. Aquí tienes el código de ejemplo en C#:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string input = "Hello-World! How are you? (test) 123-456 #2024";
        string pattern = @"[^a-zA-Zа-яА-Я0-9\s-]";
        string result = Regex.Replace(input, pattern, "");
        Console.WriteLine(result);
    }
}

Este código conservará letras latinas (a-zA-Z), cirílicas (а-яА-Я), dígitos (0-9), espacios (\s) y guiones (-). Todos los demás caracteres se eliminarán.

Tags: C#, strings, regular expressions, string cleaning