C# 中的正则表达式

17 Mar 2025 | 5 分钟阅读

在 C# 中,正则表达式用于解析和验证给定的文本是否与定义的模式匹配(例如,电子邮件地址)。模式可以包含运算符、字符字面量或构造。

要在 .NET Framework 中处理正则表达式,我们通常使用正则表达式引擎。在 C# 中,正则表达式由 **Regex** 表示。

正则表达式

我们使用正则表达式来检查给定的字符串是否与模式匹配。正则表达式或 Regex 是一个定义模式的字符序列。模式可以包含数字、字面量、运算符、字符等。我们使用模式来搜索字符串或文件。在这里,我们将看到是否找到匹配项。

通常,正则表达式用于解析、查找字符串或验证等。

在这里,我们举一个例子,说明正则表达式可以用于检查社会安全号码、有效的出生日期、匹配由逗号分隔的姓和名的全名、替换子字符串、正确的电子邮件格式、货币格式等等。

Regex 类

Regex 类表示 .NET Framework 中的正则表达式引擎。Regex 类用于解析大量文本以查找特定的字符模式。我们可以使用 Regex 类进行提取、编辑、替换或删除子字符串的文本。

System.Text.RegularExpressions 命名空间包含 Regex 类。Regex 类以字符串模式作为参数,并带有其他可选参数。

现在我们将从 regex 创建一个模式。在此代码中,我们必须将模式与以字符“M”开头的单词进行匹配。

这里我们有一个包含长文本的代码,其中包含作者姓名,我们需要对其进行解析。

在这里,我们将使用 Matches 方法查找所有匹配项,该方法返回 MatchCollection。

现在让我们举一个查找字母“M”的例子。

从上面的例子中,我们试图找到字符“M”。但这里出现了一种情况,如果单词以小写“m”开头。在这种情况下,我们将使用 **RegexOption.IgnoreCase** 参数,以便 Regex 会忽略大小写。

C# 中的正则表达式示例

这里我们举一个例子来验证文本,看看电子邮件是否格式正确。为此,我们将使用 Regex 类。

从上面的例子中,我们正在验证输入字符串是否格式正确。为此,我们使用了 Regex 类。为了验证输入文本,我们使用了 IsMatch 方法和正则表达式模式。

执行上述代码后,我们将得到如下所示的结果:

Regular Expression in C#

C# 中的 Regex 类方法

为了对输入字符串执行各种操作,Regex 类包含不同的方法。下表列出了 C# 中 Regex 的各种方法。

方法描述
IsMatch我们使用 IsMatch 方法来判断给定的输入字符串是否与正则表达式模式匹配。
MatchesMatches 方法用于返回与正则表达式模式匹配的文本。
替换Replace 方法用于替换与正则表达式模式匹配的文本。
分割我们使用 Split 方法将字符串在与正则表达式模式匹配的位置拆分成子字符串数组。

上述 Regex 类的这些方法用于根据要求,使用基于正则表达式模式的字符串值进行验证、替换或拆分。

C# 中的 Regex 替换字符串示例

通过这个例子,我们尝试使用正则表达式模式查找子字符串,该模式会在 C# 中替换所需的值。

在上面的例子中,我们使用了 Regex.Replace 方法,通过使用正则表达式模式 (“[^a-zA-Z0-9_]+”) 来查找字符串中的特殊字符并将其替换为空格。

在上面的例子中,正则表达式模式 (“[^a-zA-Z0-9_]+”) 试图匹配一个单独的字符,该字符未定义在字符组中。

执行上述程序后,我们将得到如下所示的输出:

Regular Expression in C#

在 Regex C# 中查找重复单词

使用正则表达式模式,我们可以轻松找到重复的单词。

在此示例中,我们尝试使用 C# 中的 Regex 类方法查找给定字符串中的重复单词。

上面的例子使用了 Regex.Matches 方法,通过使用正则表达式模式 (“\b(\w+?)\s\1\b”) 来查找重复的单词。

执行上述代码后,我们将得到如下所示的输出:

Regular Expression in C#
下一个主题C# 中的 DateTime