C# 正则表达式:替换字符串
我目前面临一个(小)阻碍问题。我想使用正则表达式将一个子字符串替换为另一个子字符串。但这里有一个诀窍:我在正则表达式上很烂C# 正则表达式:替换字符串,c#,regex,replace,C#,Regex,Replace,我目前面临一个(小)阻碍问题。我想使用正则表达式将一个子字符串替换为另一个子字符串。但这里有一个诀窍:我在正则表达式上很烂 Regex.Replace(contenu, "Request.ServerVariables("*"))", "ServerVariables('test')"); 基本上,我想替换“by”test之间的任何内容。我尝试将“{*}”作为一种模式,但它不起作用 你能给我一些建议吗,我会很感激的!完全基于我对正则表达式的了解(而
Regex.Replace(contenu, "Request.ServerVariables("*"))",
"ServerVariables('test')");
基本上,我想替换“by”test之间的任何内容。我尝试将“{*}”作为一种模式,但它不起作用
你能给我一些建议吗,我会很感激的!完全基于我对正则表达式的了解(而不是它们在C#中是如何完成的),你想要的模式可能是:
"[^"]*"
ie-匹配一个“然后匹配所有不匹配的”然后匹配另一个
您可能需要对双引号进行转义,以使您的正则表达式解析器与它们真正匹配。。。这就是我对C#所不知道的,仅仅基于我对正则表达式的了解(而不是它们在C#中的实现方式),您想要的模式可能是:
"[^"]*"
ie-匹配一个“然后匹配所有不匹配的”然后匹配另一个
您可能需要对双引号进行转义,以使您的正则表达式解析器在它们上真正匹配……这就是我不知道的关于C的内容。尝试避免在正则表达式中使用“*”,您通常可以通过避免使用其他字符来找到想要的内容,例如[^”]+不带引号,或([^]+)不在括号中。因此,您可能只需要“([^”]+)”,它将在[0]中为您提供全部内容,然后在[1]中您将找到“test”
我想你也可以用“”替换“”。尽量避免使用“*”在正则表达式中,你通常可以通过避免使用其他字符,例如[^”]+不带引号,或者([^]+)不在括号中找到你想要的字符。因此,你可能只需要“([^”]+”,它应该在[0]中给出全部内容,然后在[1]中你会找到“test”
我想你也可以用“”来代替“”。有几个问题需要注意
,,parens,quotes)--你需要用斜杠来转义这些字符。你还需要用另一个斜杠来转义斜杠,因为我们使用的是C字符串文字,除非你在字符串前面加上@
,在这种情况下,转义规则是不同的
*
。在这种情况下,您需要匹配任意数量的非引号字符,即[^]*
var result = Regex.Replace(contenu,
@"Request\.ServerVariables\(""[^""]*""\)",
"Request.ServerVariables('test')");
有几个问题需要注意
,,paren,quotes)--您需要用斜杠对这些字符进行转义。你还需要用另一个斜杠来转义斜杠,因为我们在C#string文本中,除非你在字符串前面加上@
,在这种情况下,转义规则是不同的
*
。在这种情况下,您需要匹配任意数量的非引号字符,即[^”]*
var result = Regex.Replace(contenu,
@"Request\.ServerVariables\(""[^""]*""\)",
"Request.ServerVariables('test')");
Taryn Easts正则表达式包含*。如果它只是任何值的占位符,则应将其删除:
"[^"]"
顺便说一句:你可以用这个很酷的编辑器来测试这个正则表达式:Taryn Easts正则表达式包括*。如果它只是任何值的占位符,你应该删除它:
"[^"]"
顺便说一句:你可以用这个很酷的编辑器测试这个正则表达式:完全正确。转义的版本看起来像
regex.Replace(contenu,“Request\\.ServerVariables\\(\”[^\“]*\“\\”),“Request.ServerVariables(\“test\”)
或Regex.Replace(contenu,@“Request\.ServerVariables\(“[^”“]”]*“\”),@“Request.ServerVariables”(“test”)代码>完全正确。转义版本将类似于Regex.Replace(contenu,“Request\\.ServerVariables\\(\“[^\”]*\\”),“Request.ServerVariables(\“test\”);
或Regex.Replace(contenu,@“Request\.ServerVariables\(“[^”“]*\”),@“Request.ServerVariables”(“test”);