Как удалить числа из строки с помощью Regex.Replace?

Мне нужно использовать Regex.Replace, чтобы удалить все цифры и знаки из строки.

Пример ввода: 123- abcd33
Пример вывода: abcd

Ответ 1

Попробуйте следующее:

var output = Regex.Replace(input, @"[\d-]", string.Empty);

Идентификатор \d просто соответствует любому символу цифры.

Ответ 2

Вы можете сделать это с помощью LINQ-решения вместо обычного выражения:

string input = "123- abcd33";
string chars = new String(input.Where(c => c != '-' && (c < '0' || c > '9')).ToArray());

Быстрый тест производительности показывает, что это примерно в пять раз быстрее, чем при использовании регулярного выражения.

Ответ 3

var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty);

Ответ 4

Как расширение строки:

    public static string RemoveIntegers(this string input)
    {
        return Regex.Replace(input, @"[\d-]", string.Empty);
    }

Использование:

"My text 1232".RemoveIntegers(); // RETURNS "My text "

Ответ 5

лучший дизайн:

public static string RemoveIntegers(this string input)
    {
        return Regex.Replace(input, @"[\d-]", string.Empty);
    }

Ответ 6

Ударные коды могут помочь вам...

Получить номера:

return string.Concat(input.Where(char.IsNumber));

Получить письма:

return string.Concat(input.Where(char.IsLetter));