使用正则表达式从字符串中提取多个数字

本文关键字:提取 数字 字符串 正则表达式 | 更新日期: 2023-09-27 18:35:56

我有一个包含两个或更多数字的字符串。以下是一些示例:

"(1920x1080)"
" 1920 by 1080"
"16 : 9"

如何从中提取单独的数字,例如"1920"和"1080",假设它们仅由一个或多个非数字字符分隔?

使用正则表达式从字符串中提取多个数字

基本的正则表达式是:

[0-9]+

您将需要使用库来检查所有匹配项并获取其值。

var matches = Regex.Matches(myString, "[0-9]+");
foreach(var march in matches)
{
   // match.Value will contain one of the matches
}

你可以通过以下方式获取字符串

MatchCollection v = Regex.Matches(input, "[0-9]+");
foreach (Match s in v)
            {
                // output is s.Value
            }
('d+)'D+('d+)

之后,自定义此正则表达式以匹配您将使用的语言的风格。

您可以使用

string[] input = {"(1920x1080)"," 1920 by 1080","16 : 9"};
foreach (var item in input)
{
    var numbers = Regex.Split(item, @"'D+").Where(s => s != String.Empty).ToArray();
    Console.WriteLine("{0},{1}", numbers[0], numbers[1]);
}

输出:

1920,1080
1920,1080
16,9