簡體   English   中英

如何在C#中替換一行中的特定文本

[英]How to replace a specific text in a line in c#

我在一行中包含以下字符串,其中一部分將被替換。 我正在使用Regx.Replace()

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

在上一行中,我必須搜索單詞“ varchar”,並將字符串“ 4”替換為“ MAX”。

最后,輸出應為:

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

請在我面臨的上述問題中幫助我。 我無法替換它。

使用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)內部的任何數字...

工作實例

可能這就是您要尋找的東西嗎?

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)");
String newString = yourString.Replace("varchar(4)","varchar(MAX)");

相反,您可以使用string類的擴展方法。

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

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

字符串newString = Regex.Replace(yourString,“([[0-9] *)”,“ MAX”);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM