RegEx für unbekannten Wert

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von 0ptix.

    RegEx für unbekannten Wert

    Hallo, ich habe ein großes Problem.
    Ich exportiere werte aus einem Objekt in eine Hashtable und exportiere diese dann in eine CSV Datei. soweit so gut, funktioniert alles ohne Probleme.
    Hab also meine Spalte "Name" und es stehen pro Zelle ein Name darunter usw.
    ALlerdings gibt es jetzt auch eine Spalte die da heißt "Daten". In diesen Daten sind mehrere untergruppen, also z.b. "E-Mail=trala@hastenichgeseh.en</>root</>String=sadjsda</>Sender=blubb</>" alles am Stück, getrennt werden diese Werte nur durch ein ","
    Jetzt zu meinem Problem: Die in rot markierten Values kenne ich vorab nicht, ich weis nicht ob Zahlen, Buchstaben, Sonderzeichen enthalten sind, ich weiß nicht wieviele Zeichen und ich weis auch nicht in welcher Reihenfolge es kommt. Es kann auch sein dass einer dieser Werte leer ist.
    Wie kann ich jetzt diese Werte die in grün markiert sind mit dem dazugehörigen wert als Spalte formatieren, sodass ich dann nicht die Spalte "Daten" habe, sondern "E-Mail", "String" und "Sender"?
    Bei Regex musst du immer einen Weg finden, den Inhalt zu umschreiben: Was du hast sind mehrere bekannte Stringteile mit 0 oder mehr unbekannten Zeichen dazwischen. ​0 oder mehr beliebige Zeichen bis der darauf folgende Teil im Pattern kommt heißt in Regex typischerweise ​.*? (​. ist ein beliebiges Zeichen, ​* sind 0 oder mehr davon und das auf den Stern folgende ​? matcht nur so viel wie nötig). Dein Pattern sieht dann also so aus ​E-Mail=(.*?)</>root</>String=(.*?)</>Sender=(.*?)</>. Die Klammern um die unbekannten Teile herum sorgen dafür, dass die als Gruppen interpretiert werden, deren zugehörigen Text du dann im Anschluss an das Ausführen des Regex separat kriegst.
    Vollzitat eines Vorposts durch Anredefunktion ersetzt ~VaporiZed

    @ErfinderDesRades:
    ja ich ziehe mir das aus dem exchange, sorry für die späte antwort, war auser gefecht gesetzt

    Nachtrag: Ich konnte es übrigens lösen, war zwar ein ziemliches gebastel aber es muss ja nicht schön sein - funktionieren muss es :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „0ptix“ ()