Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用多个拆分器值拆分字符串_C#_Asp.net_String - Fatal编程技术网

C# 如何使用多个拆分器值拆分字符串

C# 如何使用多个拆分器值拆分字符串,c#,asp.net,string,C#,Asp.net,String,我有以下格式的字符串: 0Days0hours51Minutes32Seconds 我想做的是把它分成4个数值 days,hours,minutes,seconds 所以我需要返回的值是0,0,51,32 有没有更好的方法来实现这一点,通常的string.Split(…)方法 理想情况下,如果有字母分割,则只保留数值。string input=“0days0hours51分钟32秒”; string input = "0Days0hours51Minutes32Seconds"; var n

我有以下格式的字符串:

0Days0hours51Minutes32Seconds
我想做的是把它分成4个数值

days,hours,minutes,seconds
所以我需要返回的值是0,0,51,32

有没有更好的方法来实现这一点,通常的
string.Split(…)
方法

理想情况下,如果有字母分割,则只保留数值。

string input=“0days0hours51分钟32秒”;
string input = "0Days0hours51Minutes32Seconds";
var nums = Regex.Matches(input, @"\d+").Cast<Match>()
                .Select(m => int.Parse(m.Value))
                .ToList();
var nums=Regex.Matches(输入@“\d+”).Cast() .Select(m=>int.Parse(m.Value)) .ToList();
string input=“0days0hours51分钟32秒”;
var nums=Regex.Matches(输入@“\d+”).Cast()
.Select(m=>int.Parse(m.Value))
.ToList();

您可以使用
Regex.Match(String,@“\d+”)
仅检索数值。

而不是使用
String.Split(…)
您可以使用
Regex.Match(String,@“\d+”)
仅检索数值。

如果只需要数字而不关心字符串的其余部分,可以使用:

var numbers = Regex.Split(input, @"\D+");
string input = "0Days0hours51Minutes32Seconds";
var numbers = Regex.Matches(input, @"\d+")
                   .Cast<Match>()
                   .Select(m => int.Parse(m.Value));
我还建议您将这些值放入一个有用的结构中,如
TimeSpan

var timespan = new TimeSpan(days, hours, minutes, seconds);

如果只需要数字而不关心字符串的其余部分,可以使用:

string input = "0Days0hours51Minutes32Seconds";
var numbers = Regex.Matches(input, @"\d+")
                   .Cast<Match>()
                   .Select(m => int.Parse(m.Value));
我还建议您将这些值放入一个有用的结构中,如
TimeSpan

var timespan = new TimeSpan(days, hours, minutes, seconds);

使用正则表达式提取数字为什么不使用正则表达式?
regex.matches
数字?使用正则表达式提取数字为什么不使用正则表达式?
regex.matches
数字?是的,regex。我知道我以前用过它,但我想不起来了。谢谢,是的,regex。我知道我以前用过它,但我想不起来了。谢谢