我正在使用regex.Replace()函数替换字符串的整个出现,我的代码如下:Regex.Replace(str,@stringToReplace,"**");其中stringToReplace = @"session" + "\b";
如果我像这样给出代码,它就不能正常工作。但是如果我这样写:Regex.Replace(str,@"session\b","**"); 那么它就能正常工作。请问如何解决这个问题?我想传递一个动态设置的值。
谢谢! nimmi
尝试
stringToReplace = @"session" + @"\b";
@
在这里表示一个 逐字字符串文字。@
时,它表示退格字符,即 ASCII 码为 8 的字符。你想要的是由反斜杠和 b
组成的字符串,在正则表达式中表示单词边界。"\\b"
或者将第二个字符串也变成逐字字符串文字:@"\b"
。注意,@"session"
中的 @
(没有 \b
)实际上没有任何作用,但保留也无妨。stringToReplace = "session" + @"\b";
@"session" + "\b" 和 @"session\b" 不是同一个字符串。在第一种情况下,"\b" 不会将斜杠视为斜杠,而是将其视为转义参数。而在第二种情况下,你会将其视为斜杠。
因此,@"session" + @"\b" 应该带来相同的结果。