Laden...

Text mit Regex ersetzen/replace, zwischen 2 Werten

Letzter Beitrag vor 2 Monaten 2 Posts 245 Views
Text mit Regex ersetzen/replace, zwischen 2 Werten

Hallo,

ich habe einen Text, bei dem div. Texte gleich sind, aber dazwischen ist der Wert unterschiedlich. Möchte das Ganze aber weg haben.

Beispiel:

Zeile1__AnfangGleich_1234_EndeGleich_weiterer_TextABC

Zeile2__AnfangGleich_4311AAss34_EndeGleich_weiterer_TextDEF

Zeile3__AnfangGleich_üpaos3GG4_EndeGleich_weiterer_TextGHI

Alles, was mit "AnfangGleich" und "EndeGleich", incl. dieser 2 Werte, soll weg sein.
Soll am Ende so aussehen:

Zeile1___weiterer_TextABC

Zeile2___weiterer_TextDEF

Zeile3___weiterer_TextGHI

Wollte das so machen:

                String FilterAnfang = "AnfangGleich";
                String FilterEnde = "EndeGleich";

                neuerText = alterText.Replace("["+FilterAnfang+"]*[" + FilterEnde+"]+", "");

Was mache ich falsch, wie muss ich den REGEX-Wert korrekt eintragen?

Tschau

Wenn Regex, dann so:AnfangGleich.*EndeGleich

Ich würde aber nicht mit Regex arbeiten, sondern mit ganz normalen String-Operationen.
Such den Index von "AnfangGleich", addiere die Länge von "AnfangGleich" und Du hast den Start-Index vom Wert dazwischen.
Such den Index von "Ende Gleich" und Du hast den Ende-Index vom Wert dazwischen.
Und auf die gleiche Weise kannst Du auch den Text vor "AnfangGleich" und nach "EndeGleich" suchen.
Mit diesen Indizes und Substring oder Spans kannst Du dir dann deine gewollten Teil-Strings holen.

Das dürfte um einiges performanter werden, besonders wenn Du viele von diesen Texten untersuchen willst.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.