Практическое руководство. Исключение недопустимых символов из строки

В следующем примере используется статический метод Regex.Replace для исключения недопустимых символов из строки.

Пример

Определенный в этом примере метод CleanInput используется для удаления потенциально опасных символов, введенных в текстовое поле пользователем. В данном случае CleanInput возвращает строку после удаления всех знаков, не являющихся буквенно-цифровыми, за исключением символов "@", "-" (дефис) и "." (точки). Однако шаблон регулярного выражения можно изменить таким образом, чтобы исключались все символы, которые не должны входить во входную строку.

Imports System.Text.RegularExpressions

Module Example
    Function CleanInput(strIn As String) As String
        ' Replace invalid characters with empty strings.
        Return Regex.Replace(strIn, "[^\w\.@-]", "")
    End Function
End Module
using System;
using System.Text.RegularExpressions;

public class Example
{
    static string CleanInput(string strIn)
    {
        // Replace invalid characters with empty strings.
        return Regex.Replace(strIn, @"[^\w\.@-]", ""); 
    }
}

Шаблон регулярного выражения [^\w\.@-] ищет совпадения для всех символов, которые не являются алфавитно-цифровым знаком, символом "@", "-" (дефис). Символ слова — это любая буква, десятичная цифра или любой соединительный знак пунктуации (например, символ подчеркивания). Все символы, которые совпадают с данным шаблоном заменяются строкой String.Empty, которая является строкой, заданной в шаблоне замены. Чтобы разрешить дополнительные символы во входной строке, добавьте эти символы в класс символов в шаблоне регулярного выражения. Например, шаблон регулярного выражения [^\w\.@-\\%] также разрешает знак процента и обратную косую черту во входной строке.

См. также

Основные понятия

Регулярные выражения в .NET Framework