C# 无法从字符串中提取双精度数字

C# 无法从字符串中提取双精度数字,c#,regex,string,C#,Regex,String,我需要从字符串格式的字符串中提取一个十进制数。这是我的方法: koordinat1 = koordinatarray[0]; //"ENLEM: 39.91666666666670 " koordinat2 = koordinatarray[1]; //"\n44.03166666666670" Regex regex = new Regex(@"^-?\d+(?:\.\d+)?"); Match match = regex.Match(koordinat1); if (match

我需要从字符串格式的字符串中提取一个十进制数。这是我的方法:

 koordinat1 = koordinatarray[0]; //"ENLEM: 39.91666666666670 "
 koordinat2 = koordinatarray[1]; //"\n44.03166666666670"

 Regex regex = new Regex(@"^-?\d+(?:\.\d+)?");
 Match match = regex.Match(koordinat1);

 if (match.Success) {
     koordinat11 = match.Value;
 }

 Match match2 = regex.Match(koordinat2);

 if (match2.Success) {
     koordinat12 = match2.Value;
 }
当我使用此代码时,
koordina11
koordina12
都是空字符串。为什么我不能正确获取
koordina11
koordina12
Regex Regex=newregex(@“-?\d+(\。\d+)

编辑:
“^-?\d+(?:\.\d+)”
不起作用,因为
^
符号表示您试图查找匹配项的字符串应以匹配项开头,这意味着它需要在开头有一个十进制数(在您的情况下,第一个字符串以文本开头,第二个字符串以新行字符开头)