Regex.Replace()用于替换整个事件

时间:2010-05-04 10:45:38

标签: c# regex

使用regex.Replace()替换整个字符串的出现..所以我给了Regex.Replace(str,@ stringToReplace,“**”);其中stringToReplace = @“session”+“\ b”;

如果我这样给它不替换..但如果我给像Regex.Replace(str,@“session \ b”,“**”);然后它的工作..如何避免这种..我想传递将动态设置的值..

由于 尼米

3 个答案:

答案 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”应该带来相同的结果