![](/img/trans.png)
[英]Regex.Replace not replacing the whole string instead replacing chars in string
[英]Regex.Replace() for replacing the whole occurrence
我使用regex.Replace()来替换整个字符串的出现..所以我给了Regex.Replace(str,@ stringToReplace,“**”); 其中stringToReplace = @“session”+“\\ b”;
如果我这样给它不替换..但如果我给像Regex.Replace(str,@“session \\ b”,“**”); 然后它的工作..如何避免这..我想传递将动态设置的值..
谢谢nimmi
尝试
stringToReplace = @"session" + @"\b";
@
here表示逐字字符串文字 。
当你在没有@
情况下写“\\ b”时,它表示退格字符,即带有ASCII码8的字符。你想要一个由反斜杠后跟一个b
组成的字符串,这意味着在正则表达式中有一个单词边界。
要得到这个,你需要转义反斜杠使其成为字面反斜杠: "\\\\b"
或将第二个字符串也变成逐字字符串文字: @"\\b"
。 另请注意, @
in @"session"
(没有\\b
)实际上没有效果,尽管将它留在那里没有任何害处。
stringToReplace = "session" + @"\b";
@“session”+“\\ b”和@“session \\ b”
字符串不一样。 在第一种情况下,“\\ b”不会将斜杠视为斜杠,而是将其视为转义参数。 在第二种情况下你做。
所以@“session”+ @“\\ b”应该带来相同的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.