使用regex.Replace()替换整个字符串的出现..所以我给了Regex.Replace(str,@ stringToReplace,“**”);其中stringToReplace = @“session”+“\ b”;
如果我这样给它不替换..但如果我给像Regex.Replace(str,@“session \ b”,“**”);然后它的工作..如何避免这种..我想传递将动态设置的值..
由于 尼米
答案 0 :(得分:4)
尝试
stringToReplace = @"session" + @"\b";
答案 1 :(得分:4)
此处@
表示verbatim string literal。
当您在没有@
的情况下编写“\ b”时,它表示退格符,即带有ASCII代码8的字符。您希望字符串由反斜杠后跟b
组成,这意味着在正则表达式中的单词边界。
要实现此目的,您需要转义反斜杠以使其成为字面反斜杠:"\\b"
或将第二个字符串也转换为逐字字符串文字:@"\b"
。另请注意,@
中的@"session"
(没有\b
)实际上没有效果,但将其留在那里没有任何害处。
stringToReplace = "session" + @"\b";
答案 2 :(得分:0)
@“session”+“\ b” 和 @ “会话\ B”
不是同一个字符串。 在第一种情况下,“\ b”不会将斜杠视为斜杠,而是将其视为转义参数。在第二种情况下,你做了。
所以@“session”+ @“\ b”应该带来相同的结果