Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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#_.net_String - Fatal编程技术网

C# 解析“中的数字列表”;肮脏的;一串

C# 解析“中的数字列表”;肮脏的;一串,c#,.net,string,C#,.net,String,我有一个字符串,其中包含整数,由任意数字和符号类型分隔,例如: fr365.43//236hu 并想把它转换成一个365、43和236的数字列表。有没有简单的方法可以做到这一点?使用正则表达式可以从“脏”字符串中提取数字 var r = new Regex(@"\d+"); var result = r.Matches("fr365.43//236hu"); foreach (Match match in result) { Console.WriteLine(match.Value);

我有一个字符串,其中包含整数,由任意数字和符号类型分隔,例如:

fr365.43//236hu


并想把它转换成一个365、43和236的数字列表。有没有简单的方法可以做到这一点?

使用正则表达式可以从“脏”字符串中提取数字

var r = new Regex(@"\d+");
var result = r.Matches("fr365.43//236hu");
foreach (Match match in result)
{
    Console.WriteLine(match.Value);
}
// outputs 365 then 43 then 236

使用正则表达式可以从“脏”字符串中提取数字

var r = new Regex(@"\d+");
var result = r.Matches("fr365.43//236hu");
foreach (Match match in result)
{
    Console.WriteLine(match.Value);
}
// outputs 365 then 43 then 236
使用和使用以下模式:

(\d+)
然后使用和以下模式转换为int.

(\d+)

然后转换为整数。

您可以使用
Split
方法,如果您有更多的分隔符,您也应该包括它们:

str.Split('.','/').Select(x => x.All(char.IsDigit))
   .Select(int.Parse)
   .ToList();

您可以使用
Split
方法,如果您有更多的分隔符,您也应该包括它们:

str.Split('.','/').Select(x => x.All(char.IsDigit))
   .Select(int.Parse)
   .ToList();

从字符串中提取整数的方法:

var res = Regex.Split(str, @"\D+").Where(x => x.Length > 0).Select(int.Parse).ToArray();

从字符串中提取整数的方法:

var res = Regex.Split(str, @"\D+").Where(x => x.Length > 0).Select(int.Parse).ToArray();
结果是一个IEnumerable,包含以下内容: 365 43 236

结果是一个IEnumerable,包含以下内容: 365 43 236