我正在从arduino发送数据到C#并出现问题。我从串口读取的值的末尾带有一个“\ r”,例如:“19.42 \ r”。我找到了一个解决方案,通过使用Regex删除我的号码后的字符。但它也使我的双整数。 “19.42 \ r”变成“1942”。我怎样才能删除我的字符串,但仍然保持价值为双?从C中删除字符串#
line = Regex.Replace(line, @"[^\d]", string.Empty);
我正在从arduino发送数据到C#并出现问题。我从串口读取的值的末尾带有一个“\ r”,例如:“19.42 \ r”。我找到了一个解决方案,通过使用Regex删除我的号码后的字符。但它也使我的双整数。 “19.42 \ r”变成“1942”。我怎样才能删除我的字符串,但仍然保持价值为双?从C中删除字符串#
line = Regex.Replace(line, @"[^\d]", string.Empty);
你想从字符串末尾修剪空白。
使用
line = line.TrimEnd();
如果您需要实际提取从正则表达式的字符串双号,使用
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]+"
正则表达式。
谢谢,很好解释! – Jens
另外,如果你只是想删除字符串末尾的非数字符号,你可以使用'line = Regex.Replace(line,@“\ D + $”,“”);'。 –
string data = "19.42\r";
return data.Substring(0, data.Length - 1);
甚至更好
data.TrimEnd('\r')
如果\ r被固定字符要删除
string str = "awdawdaw\r";
str = str.replace("\r","");
如果\ r是不固定的字符要删除
string str = "awdawdaw\\";
str = str.Substring((str.Length - 2), 2); \\will be removed
OP显然希望只删除'\ r'字符,并且只在字符串的末尾。您的代码将在字符串中出现的任何位置移除“\ r”。 –
是的,但我延长,因为可能在某些情况下,他需要不同的东西 –
如果你的目标是简单地删除'\ r'结尾,为什么要去一个正则表达式的麻烦?为什么不使用'Substring'? – Rob
为什么不是'''“19.42 \ r”.Replace(“\ r”,string.Empty)'''? – tym32167
'line.Replace(@“\ r”,“”)' –