Ich habe eine Zeichenfolge wie folgt.Suchen und Ersetzen innerhalb einer Zeichenfolge
string data = "A := B;\nC:=D";
Die Saite hat mit SET
Anweisung wie unten ersetzt werden.
data = "SET A=B;\nSET C=D"
Es sollte :=
mit = and insert a
Set` Anweisung ersetzen.
Ich kam mit einem Algorithmus wie folgt heraus, aber es funktioniert nicht, wenn ich mehrere :=
habe.
Gibt es eine andere einfache und effiziente Möglichkeit, dies zu umgehen? Vielleicht mit 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();
}
Jede Hilfe wäre willkommen.
Bitte benutzen Sie einfach notwendig Tags. Dies hat nichts mit Visual Studio 2010 zu tun und ist nicht spezifisch für C# 3.0 oder 4.0. Es ist eine allgemeine C# -String-Ersatzfrage und unnötige Tags fügen nur Rauschen hinzu, das nicht hilfreich ist. Vielen Dank. :) –
Ist der Eingang wohl bekannt? Das heißt, ist es garantiert, dass Sie nie etwas wie ": = zufällige Sachen hier: ===" haben werden? Was wissen Sie auch über die Variablen, die dem ': =' vorausgehen und folgen? Werden sie immer einen Charakter lang sein? –
@Ken, tut mir leid.Immer noch ziemlich neu zu stapeln Überlauf – balan