📅  最后修改于: 2023-12-03 14:39:43.910000             🧑  作者: Mango
正则表达式(regex)是一种强大的文本匹配工具,它可以帮助我们在字符串中查找特定的文本。在 C# 中,我们可以使用正则表达式来查找数字。
以下是一个示例代码片段,它使用正则表达式在字符串中查找整数:
string input = "Hello 123 World456";
string pattern = @"\d+";
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
int number = int.Parse(match.Value);
Console.WriteLine(number);
}
在上面的代码中,我们使用 \d+
的正则表达式来查找数字。这个正则表达式匹配一个或多个数字,我们将其存储在 MatchCollection
中。然后,我们遍历每个匹配项,并将其转换为整数。
如果在字符串中找不到整数,则上面的代码将不会产生任何输出。
如果我们需要查找小数,则可以使用以下正则表达式:
string input = "3.14, 1.23, 42";
string pattern = @"\d+\.\d+";
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
double number = double.Parse(match.Value);
Console.WriteLine(number);
}
在上面的代码中,我们使用 \d+\.\d+
的正则表达式来查找小数。这个正则表达式匹配一个或多个数字,后跟一个小数点,接着是另一个或多个数字。我们将每个匹配项转换为双精度浮点数并输出。
如果我们需要查找科学计数法表示的数字,则可以使用以下正则表达式:
string input = "3.14e2, 1.23e-1, 42";
string pattern = @"[-+]?\d+(\.\d+)?([eE][-+]?\d+)?";
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
double number = double.Parse(match.Value);
Console.WriteLine(number);
}
在上面的代码中,我们使用 [-+]?\d+(\.\d+)?([eE][-+]?\d+)?
的正则表达式来查找科学计数法表示的数字。这个正则表达式匹配可选的正负号,接着是一个或多个数字,后跟一个可选的小数部分和一个可选的指数部分。我们将每个匹配项转换为双精度浮点数并输出。
在本文中,我们介绍了如何使用正则表达式在字符串中查找数字。我们可以使用 \d+
来查找整数,\d+\.\d+
来查找小数,以及 [-+]?\d+(\.\d+)?([eE][-+]?\d+)?
来查找科学计数法表示的数字。