我正在從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」,「」)' –