我在一行中有以下字符串,其中一部分将被替换。我正在使用Regx.Replace()
。
在varchar(4)中找到的address4是4。
在上面一行中,我必须搜索单词“varchar”并将字符串“4”替换为“MAX”。
最后,输出应该是:
在varchar(MAX)中找到的address4是4。
请帮助我解决上述问题。我无法取代它。
答案 0 :(得分:1)
使用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)
...
答案 1 :(得分:1)
这可能是你想要的吗?
Regex.Replace(s,@"varchar\([0-9]*\)", "varchar(MAX)");
答案 2 :(得分:1)
您也可以使用普通/高效的字符串方法替换它:
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));
}
}
}
答案 3 :(得分:1)
试试这个(参考:@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)");
答案 4 :(得分:0)
String newString = yourString.Replace("varchar(4)","varchar(MAX)");
答案 5 :(得分:0)
相反,您可以使用string
类的扩展方法。
var yourString = "The address4 is found in varchar(4) is a 4.";
yourString = yourString.Replace("varchar(4)", "varchar(MAX)");
答案 6 :(得分:0)
String newString = Regex.Replace(yourString,"([0-9] *)"," MAX");