簡體   English   中英

C#如何替換Slash Quote“

[英]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.WriteLineConsole.WriteLine類的輸出,它將按原樣顯示該字符串,而不將斜杠作為轉義。

你說: 每次我這樣做,就會搜索到src=\\\\"/而不是src=\\"/ 你確定嗎? 我認為你被IDE /調試器所欺騙,它將顯示帶有第二個反斜杠的字符串,這只是一個控制字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM