[英]Odd behaviour when replacing DataGridCheckBoxColumn with a DataGridTemplateColumn
[英]Odd behaviour replacing “\”
我有這個問題,其中有一些strnig,其中包括文字表達式"\\\\"
在幾個場合,我想用"\\"
替換它,當我嘗試用string.replace替換它時,只復制第一個發生,如果我使用正則表達式,它根本不替換它
我在線查看了一些RegEx測試人員,據說我的代碼沒問題,返回我的意思,但我的代碼根本不起作用
使用string.replace
example = "\\\\url.com\\place\\anotherplace\\extraplace\\";
example = example.replace("\\\\","\\");
returns example == "\\url.com\\place\\anotherplace\\extraplace\\";
使用RegEx
example = Regex.Replace(example,"\\\\","\\");
returns example = "\\\\url.com\\place\\anotherplace\\extraplace\\";
如果我使用文字是相同的情況(在替換函數參數上使用(@"\\\\", @"\\")
給出與上面相同的結果)。
謝謝!
編輯:
我認為我的最終目標是令人困惑所以我會在這里更新它,我想要做的是:
輸入:包含字符串的變量: "\\\\\\\\url.com\\\\place\\\\anotherplace\\\\extraplace\\\\"
處理
保存字符串"\\\\url.com\\place\\anotherplace\\extraplace\\"
輸出變量(因此我可以將其發送到ffmpeg並將其識別為有效路徑)
改變這個:
example = "\\\\url.com\\place\\anotherplace\\extraplace\\";
對此
example = @"\\\\url.com\\place\\anotherplace\\extraplace\\";
問題不在於Regex.Replace
參數。
您的字符串中只出現一次\\\\\\\\
。 所以它完全按照你的要求去做。
沒有逃避(即沒有添加額外的/)
您應該將其更改為以下內容
example = example.replace(@"\\", @"\");
這似乎是預期的行為。
在String.Replace的情況下:最初,example包含一個以兩個反斜杠開頭的字符串,並在字符串的其他地方包含一些單個反斜杠。 然后,您嘗試使用單個反斜杠替換所有出現的雙反斜杠,該反斜杠工作並生成一個以單個反斜杠開頭的字符串,並在字符串中的其他位置包含一些單個反斜杠。
在Regex.Replace案例中:在這種情況下,示例的原始內容是無關緊要的。 你的正則表達式模式是一個雙反斜杠,當被解釋為正則表達式模式時,意味着“找到一個反斜杠”。 然后用一個反斜杠替換此模式,這樣就不會對字符串進行更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.