[英]What is the best way to remove characters at start of a string in c#?
考慮到我有一個這樣的字符串:
var myStr = @"\r\n test";
刪除\\r
和\\n
(回車符)和空字符等字符的最佳方法是什么
我能想到的一種方法是
var trimmedString = myStr.Replace("\r\n", "").Trim();
最優雅的方法是什么?
很難說是要刪除回車符和換行符,還是要刪除文字字符串: "\\r\\n"
。
您發布的代碼:
new string (@"\r\n test")
甚至不是有效的語法。 如果要使用字符串文字,則語法為:
var someString = @"\r\n some value";
@
表示您實際上在輸出中包含字符串: "\\r\\n"
,這意味着它將不會輸出轉義字符\\r\\n
,即回車符和換行符。
如果您想刪除特定的字符串 "\\r\\n"
,則可以像以前一樣使用String.Replace
,我已經清理了一下代碼並刪除了一些冗余:
var trimmedString = @"\r\n test".Replace(@"\r\n", "");
如果您實際上想從字符串的開頭刪除轉義字符 ,則需要刪除@
符號,使其不再是字符串文字,那么可以使用字符串的TrimStart()
方法:
var trimmedString = "\r\n test".TrimStart();
TrimStart()
接受char[]
參數,該參數詳細說明了要刪除的特定字符。 但是,如果不將任何參數傳遞給TrimStart()
,它將自動從字符串的開頭刪除空格字符。
在這里擺弄
假設您希望從字符串中刪除“原始”轉義序列,則可以如下概括基於正則表達式的方法:
var trimmed = Regex.Replace(original, @"^(\\[rntv]|\s)*", "");
這會刪除字符串開頭的逐字\\n
, \\r
, \\t
和\\v
序列,並帶有可選的空格。 請注意,開頭的\\
在逐字@"..."
字符串文字內加倍,這意味着正則表達式將匹配轉義序列,而不是它表示的字符。
最好的答案是使用正則表達式。
new Regex(@"(^\s+").Replace("\r\n BLah blah blah ","")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.