2016-11-11 7 views
-1

Ich brauche eine Hilfe bei RegEx für .NET-Sprache:auf RegEx Brauchen Sie Hilfe

Zum Beispiel habe ich den folgenden Satz von Daten in vier verschiedenen Dateien:

START;MEG;DAT01-01;DAT02-10;100001-1001;SER1"END;MEG;5-0-2-1" 

START;MEG;DAT03-01;DAT02;100001-1001;SER1"END;MEG;5-0-32-1" 

START;MEG;DATA05;DAT02;100001-1001;SER1"END;MEG;5-0-2-21" 

START;MEG;DATA500A-01;DAT02;100001-1001;SER1"END;MEG;5-0-2-1" 

Und ich brauche immer Drittel zu erfassen Spaltenwert von ; getrennt, aber vor -, damit das Ergebnis, das ich von jedem der oben angegebenen Datei bekommen sollte, ist

DAT01 
DAT03 
DATA05 
DATA5001A 
+0

Ist es für einen Nintex Workflow? Bitte präzis und lass wissen, was du versucht hast. Haben Sie Zugriff auf direkten .NET-Code (C#, VB.NET, etc.)? Und nur um sicher zu gehen: Ist die Eingabe eine Zeichenfolge mit mehreren Zeilenumbrüchen? –

+0

@ WiktorStribiżew 'Ich habe den folgenden Satz von Daten in vier verschiedenen files', das heißt Zeichenfolge Standard nicht Zeilenumbrüche hat (1 Zeile pro Datei). –

+1

Wenn 'START; MEG;' immer vorhanden ist, '(? <= START; MEG;). *? (? = [; -])' sollte funktionieren: https://regex101.com/r/6Wr1ru/3 – nozzleman

Antwort

0

ich bin nicht sicher, ob das, was löst Ihr Problem 100% der Zeit, aber es ist ein Anfang:

((.+;){2}(([^-]*)(-.+)?;)(.+;){4}.+") 

Gruppe 4 enthält die Informationen, die Sie extrahieren möchten. Dies ist es zu sehen, arbeiten und zu verbessern, wenn es braucht: https://regex101.com/r/6Wr1ru/1

+0

Großen. . (..?.. (*;) {2} (([^ -] *) (- *);) (*;) {4} * ") fast in der Nähe zu dem, was ich brauchte eine Frage: Wie ich mache diesen Ausdruck nicht gierig, so dass es beim ersten Auftreten von“stoppt. – Nomdeplume