如何:从字符串中剥离无效字符
- 项目
下面的示例使用静态 Regex.Replace 方法,从字符串中剥离无效字符。
可以使用此示例中定义的 CleanInput
方法来剥离在接受用户输入的文本字段中输入的可能有害的字符。 在此情况下,CleanInput
会剥离所有非字母数字字符(句点 (.)、at 符号 (@) 和连字符 (-) 除外),并返回剩余字符串。 但是,可以修改正则表达式模式,使其剥离不应包含在输入字符串内的所有字符。
using System;
using System.Text.RegularExpressions;
public class Example
{
static string CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
try {
return Regex.Replace(strIn, @"[^\w\.@-]", "",
RegexOptions.None, TimeSpan.FromSeconds(1.5));
}
// If we timeout when replacing invalid characters,
// we should return Empty.
catch (RegexMatchTimeoutException) {
return String.Empty;
}
}
}
Imports System.Text.RegularExpressions
Module Example
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Try
Return Regex.Replace(strIn, "[^\w\.@-]", "")
' If we timeout when replacing invalid characters,
' we should return String.Empty.
Catch e As RegexMatchTimeoutException
Return String.Empty
End Try
End Function
End Module
正则表达式模式 [^\w\.@-]
与非单词字符、句点、@ 符号或连字符的任何字符相匹配。 单词字符可以是任何字母、十进制数字或标点连接符(如下划线符号)。 与此模式匹配的任何字符被替换为 String.Empty(即替换模式定义的字符串)。 若要允许用户输入中出现其他字符,请将该字符添加到正则表达式模式中的字符类。 例如,正则表达式模式 [^\w\.@-\\%]
还允许输入字符串中包含百分号和反斜杠。
可以在 GitHub 上找到此内容的源,还可以在其中创建和查看问题和拉取请求。 有关详细信息,请参阅参与者指南。
反馈
其他资源
文档
-
使用正则表达式查找特定的字符模式,验证文本,使用文本子字符串,以及将提取的字符串添加到 .NET 中的集合。
-
本文介绍如何创建和使用正则表达式来确定字符串是否与某些模式匹配。
-
了解如何在字符串的开头或结尾修整空格,或者从 .NET 的字符串中的指定位置删除任意数量的空格或字符。