[英]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.