我在一行中有以下字符串,其中一部分將被替換。我正在使用Regx.Replace()
。如何替換c中某一行中的特定文本#
的地址4中的varchar發現(4)是4
在上述線,我必須搜索單詞「VARCHAR」,並用「MAX」替換字符串「4」。
最後,輸出應該是這樣的:
的地址4中發現的varchar(MAX)是4
請幫我在我面對上述問題。我無法取代它。
我在一行中有以下字符串,其中一部分將被替換。我正在使用Regx.Replace()
。如何替換c中某一行中的特定文本#
的地址4中的varchar發現(4)是4
在上述線,我必須搜索單詞「VARCHAR」,並用「MAX」替換字符串「4」。
最後,輸出應該是這樣的:
的地址4中發現的varchar(MAX)是4
請幫我在我面對上述問題。我無法取代它。
String newString = yourString.Replace("varchar(4)","varchar(MAX)");
OP想要搜索「varchar」這個單詞並替換它的值,並在代碼中直接替換「(4)」字符串。 –
可以改寫爲'Replace(「varchar(4)」,「varchar(MAX)」)' –
@IshanJain謝謝指出,編輯 – Jaguar
相反,您可以使用string
類的擴展方法。
var yourString = "The address4 is found in varchar(4) is a 4.";
yourString = yourString.Replace("varchar(4)", "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)
任意數量的...
這是正確的答案,所有其他人都錯誤地認爲該值總是4,但OP指定他想使用正則表達式。 –
字符串newString = Regex.Replace(yourString, 「([0-9] *)」,「MAX」);
這將用'MAX'替換字符串中的每個數字。不是OP想要的。 – paqogomez
所以他只需要玩一下正則表達式就可以做他想做的事情了;-) varchar \\([0-9] * \\)可能更合適 –
你也可以用普通/有效串方法取代它:
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)");
這與我已經提出的基本相同... –
@ReinderWit,是的,你是對的!我正在編寫自己的邏輯,並沒有看你的代碼:)。我讓你的參考。在答案中 – nrsharma
要替換隻有 「4」 或任何與'varchar'一起提供。 – Bharadwaj