我有个字符串是  3.09MJ/h  后面单位 也可能是 MJ  或者 GJ   ℃ 总之数字后的单位 长度不同  字母不同  中间还可能有/  如  MJ/h
System.Text.RegularExpressions.Regex.Replace(str, @"[a-zA-Z]+", "");
对 MJ/h 会 留下/取值的时候  如何 去掉后面的单位呢?

解决方案 »

  1.   

    如果你是要取前面的数字的话
      你可以用一个 for循环把整个字符串遍历一下
    一个一个读  是数字的取出来,取到不是数字的  跳出循环
      

  2.   

    try...string result = Regex.Replace(str, @"[^0-9.]+", ""); 
      

  3.   

    System.Text.RegularExpressions.Regex.Match(this.HeatQuantity1.Text, @"-?\d+(\.\d+)?").ToString();
      

  4.   

    提取各种数值型字符string S = "整数1 浮点数 1.5 只有小数点.5 科学计数1.5e-5 负数-1.5";
    foreach (Match vMatch in Regex.Matches(S,@"(\+|\-)?(\d+)?\.\d+((\+|\-)?e(\+|\-)?\d+)?|(\+|\-)?\d+"))
    {
        MessageBox.Show(vMatch.Value);
    }
      

  5.   

    按照你的思路,加个/不就行了 
     string sss= System.Text.RegularExpressions.Regex.Replace(str, @"[a-zA-Z/]+", "");