以下のような文字列があります。文字列内の検索と置換
string data = "A := B;\nC:=D";
文字列をSET
と置き換える必要があります。
data = "SET A=B;\nSET C=D"
それは= and insert a
SET`文で:=
を置き換える必要があります。
以下のようなアルゴリズムが出てきましたが、複数ある場合は動作しません。:=
これを処理する最も簡単で効率的な方法はありますか?おそらくRegExを使用していますか?
private string AddSETStatement(string script)
{
script = script.Replace(": =", ":=");
script = script.Replace(":=", ":= ");
script = script.Replace(" :=", ":= ");
int found = script.IndexOf(":=");
while (found > -1)
{
int foundspace = -1;
for (int index = found; index >= 0; index--)
{
string temp = script.Substring(index, 1);
if (temp == " ")
{
foundspace = index;
break;
}
}
script = script.Remove(found, 1);
if (foundspace == -1)
{
script = "SET " + script;
}
else
{
script = script.Insert(foundspace, " SET ");
}
found = script.IndexOf(":=");
}
return script.Trim();
}
助けてください。
だけ必要なタグを使用してください。これはVisual Studio 2010とは関係がなく、C#3.0や4.0に固有のものではありません。これは一般的なC#の文字列の置換の質問であり、不要なタグはノイズを追加するだけでは役に立ちません。ありがとう。 :) –
入力は整形式であることが知られていますか?つまり、 ":=ランダムなものはここに==="のようなものは決してないでしょうか?また、 ':='に先行して従う変数には何を知っていますか?彼らはいつも一文字になるだろうか? –
@Ken、申し訳ありません。スタックオーバーフローにはまだかなり新しい@Kshitij – balan