我有一個字符串,如下所示。搜索並替換字符串
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#字符串替換問題,不必要的標籤只是增加了無用的噪音。謝謝。 :) – 2012-03-28 00:36:53
輸入是否已知結構良好?也就是說,它保證你永遠不會有像「:=隨機的東西在這裏:===」?另外,你知道什麼與':='之前和之後的變量相關嗎?他們總是會變成一個角色嗎? – 2012-03-28 00:37:48
@Ken,對不起。堆棧溢出仍然很新 – balan 2012-03-28 01:01:01