C#关于字符串提取数字的弱智小疑点

C#:关于字符串提取数字的弱智小问题
求从字符串中提取数字的方法
一个链接:比如:      
    面积16410平方千米。全市总人口为1492.7万人。
       
    要取出数字16410和1492.7,
如果要用到正则表达式要怎么做?数字的位置、数量和长度是不固定的。
小数点的判断要怎么做?

如能附上代码更是感激不进




------解决方案--------------------
System.Text.RegularExpressions.Match ma = System.Text.RegularExpressions.Regex.Match(textBox1.Text,@ "([0-9]*\.{0,1}[0-9]*) ");
while (ma.Success)
{
string m = ma.ToString();
if(m!=string.Empty) MessageBox.Show(m);
ma = ma.NextMatch();
}
------解决方案--------------------
//string S = @ "面积16410平方千米。全市总人口为1492.7万人。 ";
string S = "整数1 浮点数 1.5 只有小数点.5 科学计数1.5e-5 负数-1.5 ";
foreach (Match vMatch in Regex.Matches(S,
@ "(\+|\-)?(\d+)?\.\d+((\+|\-)?e(\+|\-)?\d+)?|(\+|\-)?\d+ "))
{
Console.WriteLine(vMatch.Value);
}