Как удалить числа из строки с помощью Regex.Replace? - PullRequest
49 голосов
/ 01 ноября 2009

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

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

Ответы [ 5 ]

101 голосов
/ 01 ноября 2009

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

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

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

14 голосов
/ 01 ноября 2009

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

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

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

5 голосов
/ 01 ноября 2009
var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty);
1 голос
/ 05 февраля 2019

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

public static string RemoveIntegers(this string input)
    {
        return Regex.Replace(input, @"[\d-]", string.Empty);
    }
1 голос
/ 21 сентября 2018

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

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

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

"My text 1232".RemoveIntegers(); // RETURNS "My text "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...