[英]C# how to replace Slash Quote \"
我正在嘗試創建一個搜索並替換這樣的字符串:
src=\\"/path/file.jpg\\"
成
src=\\"http://mysite.com/path/file.jpg\\"
通過搜索屬性src和等於斜杠引用。 問題是創建搜索字符串,每次我這樣做,它就成了搜索
src=\\\\"/
而不是src=\\"/
如果此段中的property =“src”,我該如何才能使其工作?
string equalsSlashQuote = "=" + @"\\" + "\\"";
string search = property + equalsSlashQuote + "/";
string replace = property + equalsSlashQuote + SiteURL + "/";
input = input.Replace(search, replace);
問題是\\,我甚至嘗試將其添加為字符代碼值92,它仍然在搜索變量中變為\\\\。
如果你在字符串前放一個@,那么字符串就是“literal”而不使用控制字符或轉義符(使用backslahses)。
因此@"hello\\nico"
將生成一個字符串,其中單詞“hello”和“nico”用斜杠分隔,而不是用換行符分隔的單詞“hello”和“ico”。
你也可以定義一個沒有@的字符串和帶有這樣的控制字符: "hello\\\\nico"
,它們將具有相同的結果。 第一個反斜杠是控制字符,而不是字符串中的實際值。
請注意:如果您的IDE /調試器顯示字符串的值,則還將使用第二種格式顯示文本。 因此,字符串中的反斜杠將通過在其前面添加另一個反斜杠來進行轉義。 它看起來像字符串包含雙斜線,但它不包含。 您可以通過以下方式驗證:
Debug.WriteLine
或Console.WriteLine
類的輸出,它將按原樣顯示該字符串,而不將斜杠作為轉義。 你說: 每次我這樣做,就會搜索到src=\\\\"/
而不是src=\\"/
。 你確定嗎? 我認為你被IDE /調試器所欺騙,它將顯示帶有第二個反斜杠的字符串,這只是一個控制字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.