Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换文本文件中未知值的正则表达式-c#和asp.net_C#_Asp.net_Regex - Fatal编程技术网

替换文本文件中未知值的正则表达式-c#和asp.net

替换文本文件中未知值的正则表达式-c#和asp.net,c#,asp.net,regex,C#,Asp.net,Regex,我想使用asp.net中的c#函数替换文本文件中的一行。电话是: SQL-SERVER-VERSION=“某些未知值” 我不知道=之后的值可能是什么,所以我需要为此使用通配符。我希望新的一行是: SQL-SERVER-VERSION=“2008” 我尝试使用Regex.Replace,但无论我尝试使用什么正则表达式,它都不起作用。 有人能帮忙吗? 谢谢 约翰我不知道你已经尝试了什么,所以我不能告诉你你做错了什么,但以下方法应该有效: string s = "SQL-SERVER-VERSION=

我想使用asp.net中的c#函数替换文本文件中的一行。电话是:

SQL-SERVER-VERSION=“某些未知值”

我不知道=之后的值可能是什么,所以我需要为此使用通配符。我希望新的一行是:

SQL-SERVER-VERSION=“2008”

我尝试使用Regex.Replace,但无论我尝试使用什么正则表达式,它都不起作用。 有人能帮忙吗? 谢谢
约翰

我不知道你已经尝试了什么,所以我不能告诉你你做错了什么,但以下方法应该有效:

string s = "SQL-SERVER-VERSION=\"some unknown value\"";
s = Regex.Replace(s, "SQL\\-SERVER\\-VERSION=\".*\"", "SQL-SERVER-VERSION=\"2008\"");

我不知道你已经尝试了什么,所以我不能告诉你你做错了什么,但以下方法应该有效:

string s = "SQL-SERVER-VERSION=\"some unknown value\"";
s = Regex.Replace(s, "SQL\\-SERVER\\-VERSION=\".*\"", "SQL-SERVER-VERSION=\"2008\"");
试试这个:

  Regex rgx = new Regex(@"SQL-SERVER-VERSION="".*?""");
  string result = rgx.Replace(input, replacement);
在.NET字符串中看起来有点凌乱,但纯正则表达式如下所示:

SQL-SERVER-VERSION=".*?"
试试这个:

  Regex rgx = new Regex(@"SQL-SERVER-VERSION="".*?""");
  string result = rgx.Replace(input, replacement);
在.NET字符串中看起来有点凌乱,但纯正则表达式如下所示:

SQL-SERVER-VERSION=".*?"
如果您知道“将不会出现在值中,那么您可以使用

SQL-SERVER-VERSION=“*”

并替换为SQL-SERVER-VERSION=“2008”

e、 g

如果您知道“将不会出现在值中,那么您可以使用

SQL-SERVER-VERSION=“*”

并替换为SQL-SERVER-VERSION=“2008”

e、 g


好的,那你试了什么?如果你不告诉我们,我们只能猜测什么不起作用。好吧,那你试了什么?如果你不告诉我们,我们只能猜测什么不起作用;例如,如果字符串仅为
SQL-SERVER-VERSION=“”
,我认为理想的输出应该是在其中包含2008。我假设这些引号中已经有一些值,但公平地说,我将
+
更改为
*
,现在已经涵盖了。这失败了;例如,如果字符串仅为
SQL-SERVER-VERSION=“”
,我认为理想的输出将是在其中包含2008。我假设这些引号中已经有一些值,但公平地说,我将
+
更改为
*
,现在已经涵盖了这一点。如果
出现在字符串中--*默认情况下是贪婪的,并且会找到字符串中的最后一个引号(这可能是OP想要的)。@ean5533,为什么您认为OP想要贪婪匹配?因为这比假设其他情况更有意义。OP的示例行以引号结尾。在我看来,OP希望所有的东西都在最后一句话之前,这句话就在这行的末尾。@ean5533说得好。因此,使用“*”进行贪婪匹配或其他“*?”无论字符串中是否出现
,默认情况下,
*
是贪婪的,并且会在字符串中找到最后一个引号(这大概是OP想要的)@ean5533,为什么你认为OP想要一个贪婪的匹配?因为这比假设其他情况更有意义。OP的示例行以引号结尾。在我看来,OP想要所有东西,直到最后一个引号,也就是最后一个引号。@ean5533说得对。所以使用“*”表示贪婪匹配或其他“*?”