我有一个输入字符串如下:
"/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)
有谁知道为什么它会将空字符串作为第一个元素?
我建议匹配,而不是拆分:
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).
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |