Удалите нецифровые или не-буквы из строки в C#

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

Класс регулярного выражения Regex предоставляет статический Replace метод, который заменяет символы, соответствующие шаблону новым значением. Следующий код использует этот метод для замены нецифровых и не-букв на «».

private void btnReplace_Click(object sender, EventArgs e)
{
    // Показывать только буквы.
    txtLetters.Text =
        Regex.Replace(txtString.Text, "[^a-zA-Z]", "");

    // Показывать только цифры.
    txtDigits.Text =
        Regex.Replace(txtString.Text, "[^0-9]", "");
}

Ключ - это шаблон, используемый Replace. Например, рассмотрим первый шаблон [^ a-zA-Z]. Скобки заключают в себе шаблон, содержащий список символов, которые могут соответствовать группе. В этом случае шаблон включает символы в диапазонах a-z и A-Z. Символ ^ в начале означает «не», поэтому этот шаблон соответствует любому одиночному символу, который не находится в диапазоне a-z или A-Z. Другими словами, он соответствует не-буквам. Последний параметр заменяет любой согласованный символ на «", поэтому результат содержит только буквы.

Источник: http://csharphelper.com/blog/2015/04/remove-non-digits-or-non-letters-from-a-string-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector