解析"dirty"中的数字列表字符串

本文关键字:quot 列表 字符串 数字 dirty 解析 | 更新日期: 2023-09-27 17:50:11

我有一个包含整数的字符串,这些整数由任意数字和符号分隔,例如:

fr365.43//236胡

,并希望将其转换为数字365,43和236的列表。有简单的方法吗?

解析"dirty"中的数字列表字符串

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

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+)
string s ="fr365.43//236hu";
string result = s.Split(s.Where(x=>!char.IsDigit(x))
                 .Select(x=>x).ToArray())
                 .Where(x=>!String.IsNullOrEmpty(x));

结果是一个IEnumerable,包含以下内容:36543236

你可以使用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();