Skip to main content
 首页 » 编程设计

c#之正则表达式 : replace a string

2024年02月23日30think

我目前面临一个(小)阻塞问题。我想使用正则表达式将一个子字符串替换为另一个子字符串。但这是诀窍:我不擅长正则表达式。

Regex.Replace(contenu, "Request.ServerVariables("*"))", 
                       "ServerVariables('test')"); 

基本上我想用“测试”替换“之间的任何内容”。我尝试将“.{*}”作为模式,但它不起作用。

你能给我一些提示吗,我将不胜感激!

请您参考如下方法:

您需要注意几个问题。

  1. 您在正则表达式中使用了特殊字符(.、括号、引号)——您需要使用斜线对这些字符进行转义。你还需要用另一个斜线转义斜线,因为我们在 C# 字符串文字中,除非你在字符串前加上 @ 前缀,在这种情况下转义规则不同。
  2. 匹配“任意数量的任意字符”的表达式是.*。在这种情况下,您可能希望匹配任意数量的非引号字符,即 [^"]*。
  3. 与上面的 (1) 相比,替换字符串不是正则表达式,因此您不需要任何斜杠。
  4. 您需要将替换的返回值存储在某处。

最终结果是

var result = Regex.Replace(contenu, 
                           @"Request\.ServerVariables\(""[^""]*""\)", 
                           "Request.ServerVariables('test')");