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

标签 c# regex replace

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

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

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

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

最佳答案

您需要注意几个问题。

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

最终结果是

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

关于c# - 正则表达式 : replace a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423583/

相关文章:

javascript - 在循环中用数组内容替换html中的字符串

Git - 如何使用分支上的文件夹覆盖主分支上的文件夹

java - 字符数组列表,仅替换字符

PHP preg_replace

python - 使用其他数据帧替换数据帧中的值,并将字符串作为 Pandas 的键

c# - wpf强制构建可视化树

c# - 使用 C#.Net : 仅显示 CheckBoxList 中的选中项

c# - asp.net core 2.0身份 Entity Framework 用户未保存

c# - 创建应用程序快捷方式

mysql - MYSQL 中的正则表达式错误