てください、私はどこから検索を開始するために指定することを修正しました。これはあなたが探していたものであるならば、私にはわからない:
string ReplaceFirst(string text, string search, string replace, string from)
{
int posFrom= text.ToLower().IndexOf(from.ToLower());
if (posFrom < 0)
{
return text;
}
int pos = text.ToLower().IndexOf(search.ToLower(),posFrom);
if (pos < 0)
{
return text;
}
return text.Substring(0, pos) + replace + text.Substring(pos + search.Length);
}
使用法:
string tempString1 = ReplaceFirst(tempString, "brands", "tempbrands ", "FROM");
編集
以前の方法を変更することができる2つの文字列の間の文字列を置換するには以下のようにしますが、文字を限度として使用することはできません。たとえば、テーブル名に "t"が含まれていれば、コメントで尋ねる限り、 "t"を制限として使用します。
string ReplaceFirst(string text, string search, string replace, string from, string to)
{
int posFrom = text.ToLower().IndexOf(from.ToLower());
if (posFrom < 0)
{
return text;
}
int posTo = text.ToLower().IndexOf(to.ToLower(),posFrom);
if (posTo < 0)
{
return text;
}
int pos = text.ToLower().IndexOf(search.ToLower(), posFrom);
if (pos < 0 ||pos >posTo)
{
return text;
}
return text.Substring(0, pos) + replace + text.Substring(pos + search.Length);
}
使用法:
string tempString1 = ReplaceFirst(tempString, "brands", "tempbrands ", "FROM","t0");
初のない出現するのではなく、 "T0" を使用すると思います。インデックスの後に最初の発生を取得する必要があります。あなたが指している質問はインデックスなしの最初の発生です – Tan
'IndexOf'は開始インデックスを指定するためのオーバーロードを持っています。この[MSDN](https://msdn.microsoft.com/en-us/library/7cct0x33 v = .110).aspx) – Pikoh
質問を再開しました。これは、最初の部分文字列検索だけではなく、SQL解析に関するものです。 –