无法从字符串中提取双数字

时间:2016-08-22 12:28:17

标签: 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.Success) {
     koordinat11 = match.Value;
 }

 Match match2 = regex.Match(koordinat2);

 if (match2.Success) {
     koordinat12 = match2.Value;
 }

当我使用此代码时,koordinat11koordinat12都会出现空字符串。为什么我无法正确获得koordinat11koordinat12

1 个答案:

答案 0 :(得分:2)

怎么样 Regex regex = new Regex(@"-?\d+(\.\d+)?");

编辑: "^-?\d+(?:\.\d+)?"无效,因为^符号表示您尝试查找的字符串匹配应以匹配开头,这意味着它必须在开头有一个十进制数字(在您的情况下)第一个字符串以文本开头,第二个字符串以新行字符开头。