如何在c#中替换一行中的特定文本
本文关键字:一行 文本 替换 | 更新日期: 2023-09-27 18:00:08
我在一行中有以下字符串,其中一部分将被替换。ıam使用Regx.Replace()
。
在varchar(4)中找到的address4是一个4。
在上面的行中,我必须搜索单词"varchar",并将字符串"4"替换为"MAX"。
最后,输出应该是这样的:
在varchar中找到的address4(MAX)是一个4。
请在我面临的上述问题上帮助我。我无法更换它。
这可能是您想要的吗?
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)");