从C#

时间:2017-03-17 11:01:00

标签: c# regex string double

我将数据从arduino发送到c#并出现问题。我从串行读取的值在它的末尾带有一个“\ r”,例如:“19.42 \ r”。我找到了一个解决方案,使用Regex删除我的号码后面的字符。但它也使我的双整数。 “19.42 \ r”变为“1942”。如何删除我的字符串,但仍将值保持为double?

line = Regex.Replace(line, @"[^\d]", string.Empty);

3 个答案:

答案 0 :(得分:1)

您想要从字符串末尾修剪空白。

使用

line = line.TrimEnd();

请参阅C# demo

如果你需要从带有正则表达式的字符串中实际提取一个双号,请使用

var my_number = string.Empty;
var match = Regex.Match(line, @"[0-9]+\.[0-9]+");
if (match.Success) 
{   
    my_number = match.Value;
}

如果该号码不能包含小数部分,请使用@"[0-9]*\.?[0-9]+"正则表达式。

答案 1 :(得分:0)

string data = "19.42\r";
return data.Substring(0, data.Length - 1);

甚至更好

data.TrimEnd('\r')

答案 2 :(得分:0)

如果\ r \ n是您要删除的固定字符

string str = "awdawdaw\r";
str = str.replace("\r","");

如果\ r \ n不是您要删除的固定字符

string str = "awdawdaw\\";
str = str.Substring((str.Length - 2), 2);  \\will be removed