【发布时间】:2013-11-04 13:17:28
【问题描述】:
我正在尝试从具有大量格式的字符串中提取不同长度的整数。有问题的字符串可能如下所示:
string s = "Hallo (221122321 434334 more text3434 even mor,34343 343421.343sf 343";
我正在寻找的输出是一个数组:
{221122321,434334,3434,34343,343421,343,343}
【问题讨论】:
我正在尝试从具有大量格式的字符串中提取不同长度的整数。有问题的字符串可能如下所示:
string s = "Hallo (221122321 434334 more text3434 even mor,34343 343421.343sf 343";
我正在寻找的输出是一个数组:
{221122321,434334,3434,34343,343421,343,343}
【问题讨论】:
var result = new Regex(@"\d+").Matches(s)
.Cast<Match>()
.Select(m => Int32.Parse(m.Value))
.ToArray();
【讨论】:
+1
.OfType<Match> 更改为.Cast<Match> 以更好地表明我希望所有匹配项实际上都是Match 类型(它们不能是任何其他类型)。
m => m.Value 更改为m => Int32.Parse(m.Value),这样您就有了一个int 数组,而不是字符串数组吗? (所需输出中没有引号。)
使用这样的 foreach 循环:
string result = "";
foreach (string str in s)
{
int number;
if (int.TryParse(str, out number))
result += s;
else
result += ",";
}
【讨论】: