Hilfe bei regulärem Ausdruck (Regex.replace)

Marius89

Grünschnabel
Ich habe einen String der folgendermaßen aussieht:

Code:
string eingabe = "Mama [formula]abc[/formula], papa [formula]7*5[/formula] und ich";

ich möchte nun das jedes vorkommen von [formula]...[/formula] durch <formula>...</formula> ersetzt wird.

Also folgendes Ergebnis:

Code:
Mama <formula>abc</formula>, papa <formula>7*5</formula> und ich

Bisher hab ich das so gemacht:

Code:
string erg = Regex.Replace(eingabe, @"\[formula\](.*)\[/formula\]", "<formula>$1</formula>");

nur interpretiert er mir leider dann nur das erste [formula] und das letzte [/formula], so dass herauskommt:
Code:
Mama <formula>abc[/formula], papa [formula]7*5</formula> und ich
Hat jemand ne Idee?
 
Hallo Marius,

meine Regex Kenntnisse reichen jetzt leider auch nicht aus um das zu lösen...

Aber warum Regex ?

Das kannst du doch (wenn ich das richtig verstanden habe) ganz einfach
über Strings.Replace lösen.

Gruß
Jens
 
Hi.

Regex ist von Natur aus Gierig. :)

Code:
\[formula\](.*?)\[/formula\]

Dieses Pattern sollte abhilfe schaffen. :)

Das Fragezeichen schaltet dieses gierige Verhalten sozusagen aus. :)

@Jens: Vielleicht möchte er es noch erweitern, und da ist dann RegEx praktischer.

lg
 
Hi.

Regex ist von Natur aus Gierig. :)

Code:
\[formula\](.*?)\[/formula\]

Dieses Pattern sollte abhilfe schaffen. :)

Das Fragezeichen schaltet dieses gierige Verhalten sozusagen aus. :)

@Jens: Vielleicht möchte er es noch erweitern, und da ist dann RegEx praktischer.

lg


Super, danke!
Jetzts gehts einwandfrei


Das Problem war etwas komplexer, deswegen hätte String.Replace nicht funktioniert.
Hab es nur vereinfacht dargestellt, damit man schnell sieht, wo das Problem liegt.

THX @ all
 

Neue Beiträge

Zurück