[英]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.