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

本文关键字:一行 文本 替换 | 更新日期: 2023-09-27 18:00:08

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

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

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

最后,输出应该是这样的:

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

请在我面临的上述问题上帮助我。我无法更换它。

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

这可能是您想要的吗?

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

您也可以用简单/高效的字符串方法来替换它:

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));
        }
    }
}

试试这个(参考:@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)");

使用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)中的任何数字。。。

工作示例

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

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

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

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