如何:从字符串中剥离无效字符

下面的示例使用静态 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 正则表达式