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