从字符串中获取数字c#

Ctr*_*eat -1 c# regex string

我有一个输入字符串如下:

"/myWS/api/Application/IsCarAvailable/123456/2017"
Run Code Online (Sandbox Code Playgroud)

这是我正在进行的Web API调用的结束.我需要从URL轻松提取123456.

我希望像下面这样的东西能起作用

       string[] numbers = Regex.Split(input, @"\D+");
Run Code Online (Sandbox Code Playgroud)

但是,当我在数字上设置断点并运行代码时,它显示了一个包含3个元素的数组?

Element at [0] is ""
Element at [1] is 123456
Element at [2] is 2017
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么它会将空字符串作为第一个元素?

Dmi*_*nko 5

我建议匹配,而不是拆分:

   string source = @"/myWS/api/Application/IsCarAvailable/123456/2017";

   string[] numbers = Regex 
     .Matches(source, "[0-9]+") 
     .OfType<Match>()
     .Select(match => match.Value)
     .ToArray();
Run Code Online (Sandbox Code Playgroud)

请注意,\d+在.net中意味着任何 Unicode的数字(如波斯的:??????????):这就是为什么我把[0-9]+模式(RegexOptions.ECMAScript是一种选择,如果\d+图案是preferrable).