如何在c#中替换行中的特定文本

时间:2014-04-25 06:38:23

标签: c# string replace

我在一行中有以下字符串,其中一部分将被替换。我正在使用Regx.Replace()

  

在varchar(4)中找到的address4是4。

在上面一行中,我必须搜索单词“varchar”并将字符串“4”替换为“MAX”。

最后,输出应该是:

  

在varchar(MAX)中找到的address4是4。

请帮助我解决上述问题。我无法取代它。

7 个答案:

答案 0 :(得分:1)

使用RegEx.Replace(),你可以试试这个:

string text = "The address4 is found in varchar(4) is a 4.";
string output = Regex.Replace(text, @"varchar\([0-9]+\)", "varchar(MAX)");

这将替换varchar(x) ...

中的任何数字

Working Example

答案 1 :(得分:1)

这可能是你想要的吗?

Regex.Replace(s,@"varchar\([0-9]*\)", "varchar(MAX)");

答案 2 :(得分:1)

您也可以使用普通/高效的字符串方法替换它:

string sql = "The address4 is found in varchar ( 4 ) is a 4.";
int indexOfVarchar = sql.IndexOf("varchar", StringComparison.OrdinalIgnoreCase);
if (indexOfVarchar >= 0)
{ 
    indexOfVarchar += "varchar".Length;
    int indexOfBrace = sql.IndexOf("(", indexOfVarchar);
    if(++indexOfBrace > 0)
    {
        int indexOfEndBrace = sql.IndexOf(")", indexOfBrace);
        if (indexOfEndBrace >= 0)
        {
            sql = string.Format("{0}MAX{1}", 
                sql.Substring(0, indexOfBrace), 
                sql.Substring(indexOfEndBrace));
        }
    }
}

答案 3 :(得分:1)

试试这个(参考:@ReinderWit)

Regex reg = new Regex("varchar\\([0-9]+\\)");
string strtext = "The address4 is found in varchar(4) is a 4.";
string result= Regex.Replace(text, reg, "varchar(MAX)");

答案 4 :(得分:0)

String newString = yourString.Replace("varchar(4)","varchar(MAX)");

答案 5 :(得分:0)

相反,您可以使用string类的扩展方法。

var yourString = "The address4 is found in varchar(4) is a 4.";

yourString = yourString.Replace("varchar(4)", "varchar(MAX)");

答案 6 :(得分:0)

String newString = Regex.Replace(yourString,"([0-9] *)"," MAX");