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.