8

我有一个包含两个或更多数字的字符串。这里有一些例子:

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

我如何从中提取单独的数字,如“1920”和“1080”,假设它们将被一个或多个非数字字符分隔?

4

4 回答 4

12

基本的正则表达式是:

[0-9]+

您将需要使用该库来查看所有匹配项并获取它们的值。

var matches = Regex.Matches(myString, "[0-9]+");

foreach(var march in matches)
{
   // match.Value will contain one of the matches
}
于 2012-05-31T11:07:57.223 回答
5

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

MatchCollection v = Regex.Matches(input, "[0-9]+");
foreach (Match s in v)
            {
                // output is s.Value
            }
于 2012-05-31T11:11:23.737 回答
1
(\d+)\D+(\d+)

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

于 2012-05-31T11:07:47.437 回答
1

您可以使用

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
于 2012-05-31T11:09:47.353 回答