我目前面临一个(小)阻塞问题。我想使用正则表达式将一个子字符串替换为另一个子字符串。但这是诀窍:我不擅长正则表达式。
Regex.Replace(contenu, "Request.ServerVariables("*"))",
"ServerVariables('test')");
基本上我想用“测试”替换“之间的任何内容”。我尝试将“.{*}”作为模式,但它不起作用。
你能给我一些提示吗,我将不胜感激!
最佳答案
您需要注意几个问题。
- 您在正则表达式中使用了特殊字符(
.
、括号、引号)——您需要使用斜线对这些字符进行转义。你还需要用另一个斜线转义斜线,因为我们在 C# 字符串文字中,除非你在字符串前加上@
前缀,在这种情况下转义规则不同。 - 匹配“任意数量的任意字符”的表达式是
.*
。在这种情况下,您可能希望匹配任意数量的非引号字符,即[^"]*
。 - 与上面的 (1) 相比,替换字符串不是正则表达式,因此您不需要任何斜杠。
- 您需要将替换的返回值存储在某处。
最终结果是
var result = Regex.Replace(contenu,
@"Request\.ServerVariables\(""[^""]*""\)",
"Request.ServerVariables('test')");
关于c# - 正则表达式 : replace a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423583/